int、NSInteger的区别
NSInteger会自动识别当前电脑系统是32位还是64位数,然后自动返回最大的类型(int还是NSInteger)。例如,当前电脑为32位系统,你声明的NSInteger自动变为int。当前电脑为64位系统,你声明的NSInteger还是NSInteger。
所以32位系统,int的长度等于NSInteger的长度;64位系统,int的长度小于NSInteger的长度;也就是说NSInteger的长度一定是大于等于int的长度的。
知道了这个原理,当你不知道电脑的系统是几位,并且你正在声明一个整形变量,你一定要使用NSInteger,不要使用int,你可以当成一种规范
。记住:在多数情况下一定尽可能的使用NSInteger。
NSInteger、NSUInteger的区别请参考这篇文章
NSInteger是有符号整形,即声明的变量既可以是正数也可以是负数
NSUInteger是无符号整形,即声明的变量只能是正数,一般用在UITableView\UICollectionView中,因为索引值不可能是负数,例如,NSUInteger row = indexPath.row;
。
网友评论