iOS開發之int,NSInteger,NSUInteger,NSNumber的使用

這篇介紹幾種變量類型的區別和注意點,雖然簡單.但比較實用.spa

一、當須要使用int類型的變量的時候,能夠像寫C的程序同樣,用int,也能夠用NSInteger,但更推薦使用NSInteger,由於這樣就不用考慮設備是32位的仍是64位的。對象

二、NSUInteger是無符號的,即沒有負數,NSInteger是有符號的。string

三、有人說既然都有了NSInteger等這些基礎類型了爲何還要有NSNumber?它們的功能固然是不一樣的。it

NSInteger是基礎類型,可是NSNumber是一個類。若是想要存儲一個數值,直接用NSInteger是不行的,好比在一個Array裏面這樣用:編譯

NSArray *array= [[NSArray alloc]init];table

[array addObject:3];//會編譯錯誤基礎

這樣是會引起編譯錯誤的,由於NSArray裏面放的須要是一個類,但‘3’不是。這個時候須要用到NSNumber:變量

NSMutableArray *array= [[NSMutableArray alloc]init];數據類型

[array addObject:[NSNumber numberWithInt:3]];float


一下兩行代碼是會有警告的  由於NSArray 是不可變的.

NSArray *array1= [[NSArray alloc]init];

[array1 addObject:[NSNumber numberWithInt:3]];

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;

相關文章
相關標籤/搜索