当我运行我的XCODE项目时出现以下错误,似乎是以64位运行我的项目。我可以将其更改为32位,但有关如何将以下代码转换为64位架构的任何想法。
int row = [indexPath row];
(implicit conversion loses integer precision: NSInteger (aka long) to int
有什么想法吗?感谢
答案 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格式与其参数的类型匹配。