【问题标题】:UIImage to NSData fatal error: unexpectedly found nil while unwrapping an Optional valueUIImage 到 NSData 致命错误:在展开可选值时意外发现 nil
【发布时间】:2016-08-03 02:00:52
【问题描述】:

我使用NSDataUIImage 从照片库转换为NSData,但它提供了。

error 致命错误:在展开 Optional 时意外发现 nil 价值

以下是我的代码

if(o.count == 1)
{//o is [UIImage]
    let imgdata:NSData? = UIImageJPEGRepresentation(self.o[0], 10)
    print(o[0]) //it show <UIImage: 0x14e123cb0>, {30, 40}
    print(imgdata)
}

【问题讨论】:

  • 如果 print 显示 UIImage(不是 nil),则错误在其他地方

标签: ios swift uiimage


【解决方案1】:

如果 o.count == 0,则数组为空。所以你试图在这里从一个空数组创建 NSData

UIImageJPEGRepresentation(self.o[0], 10)

这样做更安全

if let imgdata = UIImageJPEGRepresentation(self.o[0], 10) {
   ...
}

因此,如果返回 nil,您的应用不会崩溃。 Swift 知道 UIImageJPEGRepresentation 返回 NSData,所以你不需要 if 语句中的:NSData?

希望这会有所帮助!

【讨论】:

  • 谢谢我会在 o.count 的情况下进行编辑,但我想将 UIImage 转换为 NSData 以使用 alamofire 框架上传到服务器
  • 是的 if (o.count == 1) 我使用 let imgdata = UIImageJPEGRepresentation(self.o[0], 10) 并打印它仍然错误
  • 您应该传递一个介于 0.0 和 1.0 之间的值。
  • @Leo 我对此进行了测试,但这似乎不是问题。 Apple 的代码可能会将其四舍五入到 1
  • 尝试删除自我。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-26
  • 2016-02-29
  • 2020-09-19
  • 2016-01-08
相关资源
最近更新 更多