对于UInt32,NSInteger是否足够大?或者甚至是同样的事情?
答案 0 :(得分:2)
否,因为NSInteger
是签名类型而UInt32
是无符号的。
您应该检查Apple的头文件中这些类型的定义,以了解它们的含义。这样做很容易。从Xcode中的一个打开的项目中,选择File - >快速打开...(Command-Shift-D)并在文本字段中键入您感兴趣的类型名称。它将找到定义它的文件。或者只需在命令中双击源代码中的类型。
答案 1 :(得分:1)
以下是来自NSObjCRuntime.h
的代码(来自iPhone SDK 3.2安装):
#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