當需要使用int類型的變量的時候,可以像寫C的程序一樣,用int,也可以用NSInteger,但更推薦使用NSInteger,因爲這樣就不用考慮設備是32位的還是64位的。
NSInteger是基礎類型,但是NSNumber是一個類。如果想要在NSMutableArray裏存儲一個數值,直接用NSInteger是不行的,比如在一個NSMutableArray裏面這樣用:
-
NSMutableArray *array = [NSMutableArray arrayWithCapacity:0];
- [array addObject:[NSNumber numberWithInt:100]];
這樣是會引發編譯錯誤的,因爲NSMutableArray裏面放的需要是一個類,但100 只是個整數不是類。
Cocoa提供了NSNumber類來包裝基本數據類型。
例如以下創建方法:
+ (NSNumber *) numberWithChar: (char) value;
+ (NSNumber *) numberWithInt: (int) value;
+ (NSNumber *) numberWithFloat: (float) value;
+ (NSNumber *) numberWithBool: (BOOL) value;
獲取NSNumber類中包裝的基本數據類型
- (char) charValue;
- (int) intValue;
- (float) floatValue;
- (BOOL) boolValue;
- (NSString *) stringValue;