標籤:style blog http io ar 使用 sp strong 資料
在Objective-c中有int的資料類型,那為什麼還要使用數字對象NSNumber?這是因為很多類(如NSArray)都要求使用對象,而int不是對象。
NSNumber就是數字對象,我們可以使用NSNumber對象來建立和初始化不同類型的數字對象。
如:
[cpp] view plaincopy
- #import <Foundation/Foundation.h>
-
- NSNumber *myNumber,*floatNumber,*intNumber,*number1;
-
- //建立integer類型對象
- intNumber = [NSNumber numberWithInteger:123];
- NSLog(@"%i",[intNumber integerValue]);
-
- //建立long類型對象
- myNumber = [NSNumber numberWithLong:0xababab];
- NSLog(@"%lx",[myNumber longValue]);
-
- //建立char類型對象
- myNumber = [NSNumber numberWithChar:‘K‘];
- NSLog(@"%c",[myNumber charValue]);
-
- //建立float類型對象
- floatNumber = [NSNumber numberWithFloat:123.00];
- NSLog(@"%f",[floatNumber floatValue]);
-
- //建立double類型對象
- myNumber = [NSNumber numberWithDouble:112233e+15];
- NSLog(@"%lg",[myNumber doubleValue]);
-
- //判斷兩個對象的值是否相等
- if ([intNumber isEqualToNumber:floatNumber] == YES ) {
- NSLog(@"值相等");
- } else {
- NSLog(@"值不相等");
- }
-
- //比較兩個對象的值大小
- if ( [intNumber compare:myNumber] == NSOrderedAscending) {
- NSLog(@"左邊的數字小");
- } else {
- NSLog(@"左邊的數字大");
- }
-
- //初始化執行個體
- number1 = [[NSNumber alloc] initWithInt:1000];
- NSLog(@"%d",[number1 intValueunsigned];
- [number1 release];
對於每個基本類型,類方法都為這它分配了一個NSNumber對象,並將其設定為指定的值,這些方法都是以numberWith開始的,之後是類型,如numberWithLong。
此外,還可以使用執行個體方法為先前分配的NSNumber對象設定指定的值,這些都是以initWith開頭,比如initWithLong。
如:
建立和初始化類方法 |
初始化執行個體方法 |
取值執行個體方法 |
numberWithChar: |
initWithChar: |
charValue |
numberWithShort: |
initWithShort: |
shortValue |
... |
... |
... |
Objective-C中NSNumber詳細用法