查看标题,我可以看到对于我正在编译的 64 位系统,NSUInteger 和 UInt32 都被定义为 32 位无符号整数,所以为什么 Xcode 在我分配一个时在警告中声称精度损失另一个?
“隐式转换失去整数精度:'NSUInteger'(又名'unsigned long')到'UInt32'(又名'unsigned int')”
我可以看到警告将一个称为“long”,一个称为“int”,但由于它们都解析为该系统上相同的 32 位无符号整数,因此不应损失精度。
它实际上并没有引起任何问题,但似乎我可能误解了一些东西,所以想更好地理解。
有这个问题,但它解决了安全问题,而不是“为什么”: 我可以安全地将 UInt32 存储到 NSUInteger 吗?