我在Xcode 5.1中打开代码时收到此警告
“不应将类型为'NSInteger'的值用作格式参数;而应将明确的类型转换添加到'long'中”
为什么我们需要将NSInteger转换为long?
最佳答案
如果在iOS(64位)上进行编译,则会收到此警告,因为在该平台上NSInteger被定义为long,并且是64位整数。另一方面,%i格式用于int,即32位。因此,格式和实际参数的大小不匹配。
由于NSInteger是32位或64位的,因此取决于平台,编译器建议通常将long强制类型转换添加为long。
更新:由于iOS 7现在也支持64位,因此在为iOS编译时会收到相同的警告。
关于ios - Xcode 5值类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23141266/