【发布时间】:2013-02-18 08:19:14
【问题描述】:
查看标题,我可以看到对于我正在编译的 64 位系统,NSUInteger 和 UInt32 都定义为 32 位无符号整数,那么为什么 Xcode 在我的警告中声称精度下降将一个分配给另一个?
“隐式转换丢失整数精度:'NSUInteger' (aka 'unsigned long') 到 'UInt32' (aka 'unsigned int')”
我可以看到警告将一个称为“long”,一个称为“int”,但由于它们在此系统上都解析为相同的 32 位无符号整数,因此应该不会损失精度。
它实际上并没有引起任何问题,但似乎我可能误解了一些东西,所以想更好地理解。
有这个问题,但它解决了安全问题,而不是“为什么”: Can I safely store UInt32 to NSUInteger?
【问题讨论】:
-
可能是因为 NSUInteger 在其他系统上可以变成 64 位长。
标签: objective-c xcode cocoa osx-lion nsuinteger