2014-03-29 40 views
0

我有以下问题:价值转换问题

implicit conversion loses integer precision 'unsigned long' to 'int'  

以下代码

int arraySize = (bits + bitsPerWord_ - 1) >> logBits_;  

我应该怎么做来解决它,它只是在Xcode开始5.1

+0

问题一直存在,只是Xcode 5.1中的默认警告是打开的。 –

+0

这是一个不警告的错误。 – user3130086

回答

0

之一你的变量是unsigned long(例如NSUInteger)。如果可能,我建议使用NSInteger。其他解决方案是将有问题的变量转换为NSInteger

NSInteger arraySize = ((NSInteger)bits + (NSInteger)bitsPerWord_ - 1) >> logBits_;  

至于你得到的错误,你可能有编译器设置来将这种警告当作错误处理。

+0

只是编译工程,但当我存档时,我得到这个错误。试过一切都不会消失。 – user3130086

+0

每个变量的类型(bits,bitsPerWord_,logBits_)是什么? – mkko

+0

这是一个隐藏的编译器问题。谢谢 – user3130086