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方法,但是键对象不是原始的,是复制的。

    

  

posted @ 2013-11-11 20:46  Mareon  阅读(149)  评论(0编辑  收藏  举报