我正在尝试将类型为“long long”的变量分配给 NSUInteger 类型,正确的方法是什么?
我的代码行:
expectedSize = response.expectedContentLength > 0 ? response.expectedContentLength : 0;
其中 expectedSize
是 NSUInteger 类型,response.expectedContentLength
的返回类型是 'long long
' 类型。变量 response
的类型是 NSURLResponse
。
显示的编译错误是:
Semantic Issue: Implicit conversion loses integer precision: 'long long' to 'NSUInteger' (aka 'unsigned int')
最佳答案
您可以尝试使用 NSNumber 进行转换:
NSUInteger expectedSize = 0;
if (response.expectedContentLength) {
expectedSize = [NSNumber numberWithLongLong: response.expectedContentLength].unsignedIntValue;
}
关于ios - 隐式转换丢失整数精度 : 'long long' to 'NSInteger' (aka 'int' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10615950/