NSNumber

NSNumber
+ (NSNumber *)numberWithInt:(int)value;
+ (NSNumber *)numberWithDouble:(double)value;
- (int)intValue;
- (double)doubleValue;

NSNumber可以将基本数据类型包装起来,形成一个对象,这样就可以给其发送消息,装入NSArray中等等。
NSNumber * intNumber=[NSNumber numberWithInt:100];
NSNumber *floatNumber=[NSNUmber numberWithFloat:100.00];
int i=[intNumber intValue];
if([intNumber isEqualToNumber:floatNumber]) ....
NSNumber继承NSObject ,可以使用比较 compare: isEqual等消息


int main (int argc, constchar * argv[]) {

    NSAutoreleasePool * pool = [[NSAutoreleasePoolalloc] init];

    NSNumber* intNumber;

    NSNumber* floatNumber;


    intNumber = [NSNumbernumberWithInt:100];

    floatNumber = [NSNumbernumberWithFloat:99.9];


    NSInteger myInt;

    myInt = [intNumber integerValue];

    NSLog(@"myInt = %li", myInt);



    [pool drain];

    return0;

}

一般来说,无需担心需要释放Foundation方法返回的对象。有时候,对象由返回它的方法所有。其他情况下,对象是由方法新创建的并被添加到自动释放池里。使用完由alloc方法显式创建的对象(包括Foundation对象)之后,需要释放它们。

如上例中,无需对intNumber,floatNumber调用release释放内存。

但如果采用intNumber = [NSNumber alloc] initWithInt:100]; 创建,在使用完后,需要使用[intNumber Release];来释放它。

另外,NSInteger并不是一个类,使用使用typedeflong NSInteger;定义的。

你可能感兴趣的:(number)