Implicit conversion loses integer precision: 'long long' to 'NSUInteger' (aka 'unsigned int')

It's really just a cast, with some range checking:

const long long expectedContentLength = response.expectedContentLength;
NSUInteger expectedSize = 0;
if (NSURLResponseUnknownLength == expectedContentLength) {
assert(0 && "length not known - do something");
return errval;
}
else if (expectedContentLength < 0) {
assert(0 && "too little");
return errval;
}
else if (expectedContentLength > NSUIntegerMax) {
assert(0 && "too much");
return errval;
}
// expectedContentLength can be represented as NSUInteger, so cast it:
expectedSize = (NSUInteger)expectedContentLength;
引用:http://stackoverflow.com/questions/10615950/implicit-conversion-loses-integer-precision-long-long-to-nsinteger-aka-in
原文地址:https://www.cnblogs.com/vagrantatbeijing/p/3433693.html