int、long、NSInterger、NSUInterger、NSNumber 区别和使用
2016-12-06 10:26
281 查看
1、int、long、NSInterger 使用哪个?
1)c语言中,int和long的字节数是和操作系统指针所占位数相等。2)但long的长度永远大于或等于int。
3)objective-c里,苹果的官方文档中总是推荐用NSInteger
它和int的区别在于:
在苹果的api实现中,NSInteger是一个封装,r会根据系统的位数(32or64)自动选择int的最大数值(int or long)。
4)NSInteger定义的代码类似于下:
#if __LP64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedef long NSInteger;
typedef unsigned long NSUInteger;
#else
typedef int NSInteger;
typedef unsigned int NSUInteger;
#endif
2、NSInterger, NSUInterger 使用哪个?
NSUInteger是无符号的整型, NSInteger是有符号的整型,1)表视图、索引中使用NSUInteger
在表视图应用中常见 NSUInteger row= [indexPath row];因为这是显示tableViewCell有多少个,只能是非零整数的,也就是说,NSUInteger常用于索引值;
2)其他地方使用 NSInterger
3、NSNumber 和 NSInteger
1)NSInteger是基础类型,NSNumber是一个类。NSNumber是NSValue的一个子类,它是一个对象来存储数字值包括bool型,它提供了一系列的方法来存储char a signed or unsigned char, short int, int, long int, long long int, float, or double or as a BOOL。它提供了一个compare:方法来决定两个NSNumber对象的排序;
2)NSNumber的创建或者初始化:
NSNumber 数字对象 = [NSNumber numberWith数字类型:数值];
示例:
intNumber = [NSNumber numberWithInt:100];
longNumber = [NSNumber numberWithLong:0xabcdef];
floatNumber = [NSNumber numberWithFloat:10.01];
3)NSInteger 和 NSNumber 的转换
两者的关系可以看文档
转换的话参考两个函数
+ (NSNumber *)numberWithInteger:(NSInteger)value;
- (NSInteger)integerValue;
4)、NSArray 和 NSSet中可以存放 NSNumber ,不能存放 NSNumber。
相关文章推荐
- int, NSInteger, NSUInteger, NSNumber的区别
- int、NSInteger、NSUInteger、NSNumber的区别和联系
- iOS开发之int,NSInteger,NSUInteger,NSNumber的使用
- int、 NSInteger、 NSUInteger、NSNumber之间的区别
- _int、NSInteger、NSUInteger、NSNumber的区别和联系
- iOS开发之int,NSInteger,NSUInteger,NSNumber的使用
- int, NSInteger, NSUInteger, NSNumber的区别
- [IOS]int,NSInteger,NSUInteger,NSNumber使用
- iOS开发之int,NSInteger,NSUInteger,NSNumber的使用
- iOS开发之int,NSInteger,NSUInteger,NSNumber的使用
- int,NSInteger,NSUInteger,NSNumber区别
- objective-c 使用NSNumber 将int float long等数据类型加入到数组或字典中
- iOS开发-- 使用NSNumber将int、float、long等数据类型加入到数组或字典中
- 【iOS知识学习】_int、NSInteger、NSUInteger、NSNumber的区别和联系
- iOS开发之int,NSInteger,NSUInteger,NSNumber的使用
- 【iOS知识学习】_int、NSInteger、NSUInteger、NSNumber的区别和联系
- int、NSInteger、NSUInteger、NSNumber的区别和联系
- 基础知识之_int、NSInteger、NSUInteger、NSNumber的区别和联系
- 【iOS知识学习】_int、NSInteger、NSUInteger、NSNumber的区别和联系
- _int、NSInteger、NSUInteger、NSNumber的区别和联系