ios - 隐式转换丢失整数精度 : 'long long' to 'NSInteger' (aka 'int' )

标签 ios ios5 xcode4.2 long-integer nsuinteger

我正在尝试将类型为“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/

相关文章:

ios - 关闭 MFMailComposeViewController 后,自定义模态视图 Controller 看起来很奇怪

iOS 模拟器总是采用相同的屏幕截图

objective-c - iOS5下添加SplitViewController View 麻烦

iphone - Xcode 项目和 iTunes Connect 之间的 iOS 最低操作系统要求不同

ipad - iOS - 使用 StoryBoard 创建弹出 View

ios - AES 中的 CCCrypt 解密

ios - 在定时器中运行 UIView.animate

iOS 动画 1+2 = 3. 3-2 != 1

objective-c - 使用 NSNotifications 发送无法识别的选择器

xcode4.2 - XCode 仪器警告 - "Insufficient task_for_pid privileges (LeakAgent)"