NSUInteger,NSInteger,int

707 阅读1分钟

NSUInteger是无符号的,即没有负数

NSInteger是有符号的, 所以NSUInteger类型不能给它赋负值

NSInteger比Int多了个判断,不用考虑32位或者64位

当需要使用int类型的变量的时候,可以像写C的程序一样,用int,也可以用NSInteger,但更推荐使用NSInteger,因为这样就不用考虑设备是32位的还是64位的。

(以后使用NSInteger,因为苹果现在必须让程序支持64位的,所以以后不要在使用int 来定义变量了)

#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