如果NSInteger
与常规int
一样,那么为什么它存在?它被称为NSInteger
的目的是什么?
我是Mac OS X编程新手,我们正在为此报告。
答案 0 :(得分:22)
这是一种体系结构安全(64 vs 32位)类型,支持不同的C平台和实现。
Apple建议您使用NSInteger
而不是正常类型,我会假设其可移植性!
您可以在此Foundation Types Reference了解更多信息。
基本描述:
构建32位应用程序时, NSInteger是一个32位整数。一个 64位应用程序将NSInteger视为 一个64位整数。
答案 1 :(得分:2)
除了typedef在不同系统上有所不同(64位系统上为long
,32位上为int
),没有太大理由。
可以说,它给人的印象是NSInteger
是一个对象,而不是。
答案 2 :(得分:1)
NSInteger在32位机器上是4个字节,在64位机器上是8个字节。