NSNumber 以及NSInteger,NSNumber以及Int的区别
// ? NSNumber 之所以可以(只能)包裝基本數據類型,是因為繼承了NSValue;
//? NSNumber 把基本數據類型包裝成一個對象類型(因為集合不能存放基本數類型)
?
//初始化
NSNumber *num = [NSNumber numberWithInt:10]; ?
?
//賦值
?NSDictionary *d = @{
? ? ? ? ? ? ? ? ? ? ? ? @"name":@"jack",
? ? ? ? ? ? ? ? ? ? ? ? @"age":[NSNumber numberWithInt:10]
? ? ? ? ? ? ? ? ? ? ? ? };
? ? NSNumber * a = d[@"age"];
?? ?
? ? NSLog(@"%@",a)
?
?
//? ? 把對象類型轉化為int
? ? int b = [num intValue];
? ? NSLog(@"%d",b);
? ? //? ? 把小數包裝成一個對象
? ? NSNumber *num1 = [NSNumber numberWithDouble:10.5];
? ? double c = [num1 doubleValue];
? ? int e = 20;
? ? [NSString stringWithFormat:@"%d",e];
? ? NSString *str = [NSString stringWithFormat:@"dsfg"];
? ? [str intValue];
?
這里有人會問了?
NSInteger,NSNumber以及Int的區別 是什么
?
上面說了NSNumber 繼承了NSValue? 而?NSValue 繼承了nsobjc 所以是oc的對象。NSInteger只是一個基本的數據類型。因為oc是c語言上的繼承吧。c里面int和long。long肯定比int長度要長,但是有時候我們不知道返回的int還是long的時候留在oc里面可以用NSInteger了。NSInteger與int的區別是NSInteger會根據系統的位數(32or64)自動選擇int的最大數值(int or long)
?
參考:https://www.jianshu.com/p/2abaedc8e8a4
轉載于:https://www.cnblogs.com/lanmaokomi/p/8554171.html
總結
以上是生活随笔為你收集整理的NSNumber 以及NSInteger,NSNumber以及Int的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 取指周期的工作过程
- 下一篇: Python redis的订阅发布机制(