您好,匿名用户
随意问技术百科期待您的加入

NSInteger和int到底什么区别分别用在什么场景

0 投票

看官方给出的示例代码,一般用于计算的,返回的整数都是用 NSInteger的,但是一般for循环的计数器就都是int了

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
for (int i=0; i<10; i++) {}

我看一些资料说NSInteger是架构安全的,但这种架构安全主要体现在哪里呢?
如果用int会在哪些情况下出现不安全的问题呢?
为什么for循环计数器都用int,不会出问题吗?
NSInteger对比int会有性能上的或者其他的损失吗?
。。。我好像十万个为什么啊 -_-||

用户头像 提问 2012年 12月1日 @ Trundle 上等兵 (301 威望)
分享到:

1个回答

0 投票
#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

这是NSInteger的定义
对于不同平台32,64位有不同的最大值(int long)。
可以直接转化。
所以mac os或者ios上的系统api都是使用NSInteger作为参数。

用户头像 回复 2012年 12月1日 @ Evelynn 上等兵 (244 威望)
提一个问题:

相关问题

0 投票
1 回复 27 阅读
用户头像 提问 2014年 1月30日 @ Viktor 上等兵 (290 威望)
0 投票
0 回复 24 阅读
用户头像 提问 2012年 12月1日 @ Aphrodite 上等兵 (185 威望)
0 投票
0 回复 69 阅读
用户头像 提问 2012年 12月1日 @ Veigar 上等兵 (210 威望)
+1 投票
1 回复 87 阅读
用户头像 提问 2013年 3月3日 @ hadoop 上等兵 (109 威望)
0 投票
1 回复 42 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...