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是无符号整形,即声明的变量只能是正数,比如取值数组下标,可以使用来声明NSUInteger;