包装类---NSNumber和NSValue

包装类:就是将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是工厂类,是一堆类,共享一个名字。根据不同的创建方式,会得到不同类的对象。

//例如:有一个动物类,可以创建猫,和狗,和其他动物。


你可能感兴趣的:(包装类---NSNumber和NSValue)