为什么需要存在NSInteger?

16

如果 NSInteger 就像普通的 int 那么为什么它存在,叫做 NSInteger 的目的是什么?

我是Mac OS X编程的新手,我们将为此撰写一份报告。


感谢您修复这个问题,@Tom Duckering! - Jonathan Sterling
3个回答

22

这是一种架构安全(64位与32位)的类型,支持不同平台和 C 语言实现。

苹果公司建议您使用 NSInteger 而不是普通类型,我猜想这样做是为了提高可移植性!

您可以在这个Foundation Types Reference里阅读更多内容。

基本描述:

当构建 32 位应用程序时,
NSInteger 是一个 32 位整数。64 位应用程序将 NSInteger 视为 64 位整数。


2
除了在不同系统上(64位系统上是long,32位系统上是int)typedef不同之外,没有太多理由。
可以说,这给人一种NSInteger是一个对象的印象,但实际上它并不是。

1
是的,它实际上让我和其他NS类混淆了。 - Vincent Bacalso

1

在32位机器上,NSInteger将占用4个字节,在64位机器上则为8个字节。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接