价值转换问题

时间:2014-03-29 19:03:25

标签: iphone objective-c

我有以下问题:

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

以下代码

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

我该怎么做才能修复它,它只在xcode 5.1中开始

1 个答案:

答案 0 :(得分:0)

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

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

至于你得到的错误,你可能有编译器设置将这种警告视为错误。