为了账号安全,请及时绑定邮箱和手机立即绑定

何时使用NSInteger与int

何时使用NSInteger与int

幕布斯6054654 2019-07-23 16:36:09
何时使用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呢?
查看完整描述

3 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

您通常希望在NSInteger不知道代码可能运行的处理器体系结构类型时使用,因此您可能出于某种原因需要最大可能 int类型,在32位系统上只需要一个int,而在64位系统上这是一个long

我坚持使用NSInteger而不是intlong除非你特别要求它们。

NSIntegerNSUInteger被定义为* 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

关于每种类型应使用的正确格式说明符,请参阅“ 字符串编程指南”中有关平台依赖性的部分。


查看完整回答
反对 回复 2019-07-23
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

为什么要使用int

Apple使用的int是因为循环控制变量(仅用于控制循环迭代)int数据类型很好,无论是数据类型大小还是它可以为循环保存的值。这里不需要平台相关的数据类型。对于循环控制变量,即使是16位int也会在大多数情况下完成。

Apple使用NSInteger函数返回值或函数参数,因为在这种情况下,数据类型[size]很重要,因为您正在使用函数正在与其他程序或其他代码进行通信/传递数据; 看到我应该何时使用NSInteger vs int的答案在你的问题本身......

当将值作为参数传递给函数从函数返回值时,它们[Apple]使用NSInteger(或NSUInteger)。


查看完整回答
反对 回复 2019-07-23
  • 3 回答
  • 0 关注
  • 794 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信