Xcode 5.1 NSInteger为int,精度损失

时间:2014-03-12 21:03:21

标签: objective-c xcode int nsinteger

这可能是一个平凡的问题,但我想知道最佳做法。 自升级到Xcode 5.1以来,我收到了大量关于NSInteger(又名' long')到' int'的损失整数精度的警告。假设因为arm64开关。

到目前为止,我一直在打字,以摆脱警告,例如:

int number = (int)[self.arrayOfUsers count];

或者我应该使用

long number = (int)[self.arrayOfUsers count];

哪个更好"?我现在应该主要使用多头吗?

谢谢!

2 个答案:

答案 0 :(得分:6)

您应该做的是使用正确的数据类型:

NSUInteger number = [self.arrayOfUsers count];

不要不必要地投射到int之类的东西。使用正确的类型。

答案 1 :(得分:0)

如果可以,只需使用相同的类型:

NSUInteger number = [self.arrayOfUsers count];

您的第一个建议:

int number = (int)[self.arrayOfUsers count];
只要您确定数组的计数永远不会超过整数限制(2 ^ 31-1),

也会正常工作。