为什么有NSInteger?

时间:2011-05-03 14:18:33

标签: objective-c

如果NSInteger与常规int一样,那么为什么它存在?它被称为NSInteger的目的是什么?

我是Mac OS X编程新手,我们正在为此报告。

3 个答案:

答案 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个字节。