NSInteger是一个32位整数

Hur*_*rkS 4 iphone int32 nsinteger ios

我是否认为在ios环境中声明NSInteger意味着它只会是32位值?

我想知道我不熟悉使用int32的另一个程序员告诉我,我在目标C中找到的唯一类似的东西是int32_t,_t代表'整数类型'..但是使用这些类型正在成为一个真正的痛苦我觉得我没有功能上所提供的目标c像NSInteger似乎得到.

任何帮助将不胜感激.

Mic*_*ann 7

以下是旧版SDK NSInteger中" NSObjCRuntime.h"中定义的" ":

#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
Run Code Online (Sandbox Code Playgroud)

截至2013年9月,iPhone现在可以运行64位芯片,这意味着NSInteger可能会更大.

在我自己的编码中,如果我正在做纯粹的Objective C,那么我会坚持下去,NSInteger因为未来我的代码就可以了.另一方面,开源的东西和某些程序员喜欢使用" uint32_t"或" int32_t"以及其他类似的显式类型,所以当我看到这些时,我试着在我正在做的代码中匹配他们的风格.