包裝類:就是将C語言中的基礎變量,包裝成一個對象,這樣就可以将其運用到OC中的數組,字典中。和java中的包裝類是一個意思。
NSNumber:
NSNumber * num = [NSNumber numberWithInt:6];
- (char)charValue;
- (id)initWithChar:(char)value;
+ (NSNumber *)numberWithChar:(char)value;
- (NSComparisonResult)compare:(NSNumber *)otherNumber;
- (BOOL)isEqualToNumber:(NSNumber *)number;
NSValue:
【注】NSValue是NSNumber的父類,可以存儲任何類型的資料,包括複合資料類型(數組,指針,結構體等),甚至是對象。
//原生方法
- (void)getValue:(void *)value;
- (const char *)objCType
//初始化或類方法
- (id)initWithBytes:(const void *)value objCType:(const char *)type;
+ (NSValue *)valueWithBytes:(const void *)value objCType:(const char *)type;
+ (NSValue *)value:(const void *)value withObjCType:(const char *)type;
//存取對象的方法(了解)
+ (NSValue *)valueWithNonretainedObject:(id)anObject;
- (id)nonretainedObjectValue;
//比較兩個Value對象是否相等(了解)
- (BOOL)isEqualToValue:(NSValue *)value;
【注】NSValue和NSNumber也是工廠類,不能被繼承
//NSString是工廠類,是一堆類,共享一個名字。根據不同的建立方式,會得到不同類的對象。
//例如:有一個動物類,可以建立貓,和狗,和其他動物。