将int转换为64位架构

时间:2014-04-07 08:03:39

标签: c xcode5

当我运行我的XCODE项目时出现以下错误,似乎是以64位运行我的项目。我可以将其更改为32位,但有关如何将以下代码转换为64位架构的任何想法。

int row = [indexPath row];
(implicit conversion loses integer precision: NSInteger (aka long) to int

有什么想法吗?感谢

2 个答案:

答案 0 :(得分:1)

也许您应该将int row定义为NSInteger row

答案 1 :(得分:1)

请注意,它表示"隐式转换"。您可以使用

显式转换,消除警告
int row = (int)[indexPath row];

或者,如果int可能太小,

long row = (long)[indexPath row]; // here the cast isn't even needed because widening is ok

或者您可以使row的类型符合您设置的值的类型(如果这是您唯一的位置)

NSInteger row = [indexPath row];

如果更改row的类型然后以类型不安全的方式使用它,请小心,例如printf的参数...确保printf格式与其参数的类型匹配。