iphone 开发第六天 - 包装类
Cocoa中提供的包装类为NSNumber,继承关系:NSObject - 》NSValue -》NSNumber
针对NSNumber的操作分为2类,一类是从基本类型开始生成实例,另一类是从实例中获得基本类型的数值。
以下是从基本类型生成实例的方法。
NSNumber +(id)numberWithBool:(BOOL)value
-(id)initWithBool:(BOOL)value
指定逻辑值生成实例
+(id)numberWithChar:(char)value
-(id)initWithChar:(char)value
+(id)numberWithUnsignedChar:(unsigned char)value
-(id)initWithUnsignedChar:(unsigned char)value
指定字符型value生成实例
之后还有int, unsigned int, long,unsigned long,float,double
取值方法:
NSNumber -(BOOL)boolValue,之后的结构一样,就不赘述,但多了一个 -(NSArray *)stringValue 取得字符串值
任何基本类型都可以用stringValue以字符串的形式取出来
例子:
NSMutableArray *array = [NSMutableArray array];//创建空数组
for(int i = 0 ;i<10;i++){
NSNumber *number = [NSNumber numberWithInt:i];
[array addObject:number];
}
对象的等值与等价
两个实例完全相同就等价,只是值相等就是等值,等价用 ==运算符,同值用NSObject 中的-(BOOL)isEquql:(id)object 方法判断
和java中很像
集合类与参照统计:
在对象追加时就要调用retain函数,集合类负责之后的release
NSDictionary键对象追加时需要复制键对象,然后将这个复制出来的对象追加进去,值是直接追加,其实编程时完全不用考虑,只要追加完毕后,
就由NSDictionary负责集中管理,因此追加完成后就可以调用其release方法,但是键对象不是原始的,是复制的。