您好,登錄后才能下訂單哦!
int , float , long都是OC的基本數據類型,但是(!important)它們都不是對象。但是有的時候需要將他們最為一個對象來使用,例如:NSArray要求存儲的值必須是對象。那么這里就可以使用NSNumber類。
一 , 為NSNumber賦值:
① : 賦值一個int類型的值,創建和初始化 int2O = [NSNumber numberWithInteger:100]
意義: 為int2O賦值×××100對象
②:獲得init2O的的值 init2Get = [init2O integerValue]
注意 : integerValue說明init2O里面存的是int類型的值
例如:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSNumber *init2O;
NSInteger init2Get;
init2O = [NSNumber numberWithInteger:100];
init2Get = [init2O integerValue];
NSLog(@"%li",(long)init2Get);
}
return 0;
}
結果:
二,可以使用initWithInteger來直接實例化一個NSNumber
其他的類型
賦值方法 | 實例化 | 檢索方法 |
---|---|---|
numberWithChar | initWithChar | charValue |
numberWithUnsignedChar | initWithUnsignedChar | unsignedCharValue |
numberWithShort | initWithShort | shortValue |
numberWithUnsignedShort | initWithUnsignedShort | unsignedShortValue |
numberWithInteger | initWithInteger | integerValue |
numberWithUnsignedInteger | initWithUnsignedInteger | unsignedIntegerValue |
numberWithInt | initWithInt | intValue |
numberWithUnsignedInt | initWithUnsignedInt | unsignedIntValue |
numberWithLong | initWithLong | longValue |
numberWithUnsignedLong | initWithUnsignedLong | unsignedLongValue |
numberWithLongLong | initWithLongLong | longlongValue |
numberWithUnsignedLongLong | initWithUnsignedLongLong | unsignedLongLongValue |
numberWithFloat | initWithFloat | floatValue |
numberWithDouble | initWithDouble | doubletValue |
numberWithBool | initWithBool | booltValue |
驗證2個number是否是相等的
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSNumber *init2O = [[NSNumber alloc] initWithInteger:100];
NSInteger init2Get;
init2Get = [init2O integerValue];
NSLog(@"%li",(long)init2Get);
//驗證是否相等
NSNumber *float2O = [[NSNumber alloc] initWithFloat:100.00];
if( [init2O isEqualToNumber:float2O] == YES){
NSLog(@"Equal!!!");
}
}
return 0;
}
結果:
驗證小于
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSNumber *init2O = [[NSNumber alloc] initWithInteger:100];
NSInteger init2Get;
init2Get = [init2O integerValue];
NSLog(@"%li",(long)init2Get);
//驗證是否相等
NSNumber *float2O = [[NSNumber alloc] initWithFloat:100.00];
if( [init2O compare:float2O] == NSOrderedAscending){
NSLog(@"Asc!!!");
}else{
NSLog(@"No Asc");
}
}
return 0;
}
結果:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。