3 回答
TA贡献1829条经验 获得超6个赞
您通常希望在NSInteger
不知道代码可能运行的处理器体系结构类型时使用,因此您可能出于某种原因需要最大可能 int
类型,在32位系统上只需要一个int
,而在64位系统上这是一个long
。
我坚持使用NSInteger
而不是int
/ long
除非你特别要求它们。
NSInteger
/ NSUInteger
被定义为* dynamic typedef
* s到这些类型之一,它们的定义如下:
NSInteger/ NSUInteger被定义为* dynamic typedef* s到这些类型之一,它们的定义如下:
#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
关于每种类型应使用的正确格式说明符,请参阅“ 字符串编程指南”中有关平台依赖性的部分。
TA贡献1877条经验 获得超6个赞
为什么要使用int
?
Apple使用的int
是因为循环控制变量(仅用于控制循环迭代)int
数据类型很好,无论是数据类型大小还是它可以为循环保存的值。这里不需要平台相关的数据类型。对于循环控制变量,即使是16位int
也会在大多数情况下完成。
Apple使用NSInteger
函数返回值或函数参数,因为在这种情况下,数据类型[size]很重要,因为您正在使用函数正在与其他程序或其他代码进行通信/传递数据; 看到我应该何时使用NSInteger vs int的答案?在你的问题本身......
当将值作为参数传递给函数或从函数返回值时,它们[Apple]使用NSInteger(或NSUInteger)。
- 3 回答
- 0 关注
- 794 浏览
添加回答
举报