何时使用NSInteger与int

何时使用NSInteger与int

NSInteger为iOS开发时,我应该何时使用vs int?我在Apple示例代码中看到,当将值作为参数传递给函数或从函数返回值时,它们使用NSInteger(或NSUInteger)。

- (NSInteger)someFunc;...- (void)someFuncWithInt:(NSInteger)value;...

但是在一个函数中,它们只是int用来跟踪一个值

for (int i; i < something; i++)...int something;something += somethingElseThatsAnInt;...

我已经读过(被告知)这NSInteger是一种在64位或32位环境中引用整数的安全方法,那么为什么要使用int呢?


幕布斯6054654
浏览 802回答 3
3回答

肥皂起泡泡

您通常希望在NSInteger不知道代码可能运行的处理器体系结构类型时使用,因此您可能出于某种原因需要最大可能&nbsp;int类型,在32位系统上只需要一个int,而在64位系统上这是一个long。我坚持使用NSInteger而不是int/&nbsp;long除非你特别要求它们。NSInteger/&nbsp;NSUInteger被定义为* dynamic&nbsp;typedef* s到这些类型之一,它们的定义如下:NSInteger/ NSUInteger被定义为* dynamic typedef* s到这些类型之一,它们的定义如下:#if __LP64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64typedef long NSInteger;typedef unsigned long NSUInteger;#elsetypedef int NSInteger;typedef unsigned int NSUInteger;#endif关于每种类型应使用的正确格式说明符,请参阅“&nbsp;字符串编程指南”中有关平台依赖性的部分。

慕哥9229398

为什么要使用int?Apple使用的int是因为循环控制变量(仅用于控制循环迭代)int数据类型很好,无论是数据类型大小还是它可以为循环保存的值。这里不需要平台相关的数据类型。对于循环控制变量,即使是16位int也会在大多数情况下完成。Apple使用NSInteger函数返回值或函数参数,因为在这种情况下,数据类型[size]很重要,因为您正在使用函数正在与其他程序或其他代码进行通信/传递数据;&nbsp;看到我应该何时使用NSInteger vs int的答案?在你的问题本身......当将值作为参数传递给函数或从函数返回值时,它们[Apple]使用NSInteger(或NSUInteger)。
打开App,查看更多内容
随时随地看视频慕课网APP