总会遇到用int还是用NSInteger,而且总是忘了为什么。今天索性查完资料记下来。在苹果的源文件中,NSInteger是这样定义的:
|
|
这个宏定义是什么意思呢?
__LP64__
表示指针长度为64位(TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE)
嵌入式环境并且不是iPhoneTARGET_OS_WIN32
32位Windows环境NS_BUILD_32_LIKE_64
以64位编译
概括起来就是,苹果会选择较大的那种类型作为NSInteger,在32位环境上就是int,在64位环境上就是long。