Xcode 5.1 NSInteger为int,精度损失

Ala*_*lan 0 int xcode objective-c nsinteger

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

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

int number = (int)[self.arrayOfUsers count];
Run Code Online (Sandbox Code Playgroud)

或者我应该使用

long number = (int)[self.arrayOfUsers count];
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

rma*_*ddy 6

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

NSUInteger number = [self.arrayOfUsers count];
Run Code Online (Sandbox Code Playgroud)

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