2016-08-03 63 views
0

我使用NSDataUIImage从光盘库转换为NSData,但它给。UIImage到NSData致命错误:意外地发现零,而解包一个可选值

error fatal error: unexpectedly found nil while unwrapping an Optional value

以下是我的代码

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) 
} 
+0

如果打印显示一个UIImage(而不是零),那么错误是在别的地方 –

回答

0

如果o.count == 0,则数组为空。所以,你想从这里

UIImageJPEGRepresentation(self.o[0], 10) 

它的安全空数组创建的NSData做

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

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

希望这会有所帮助!

+0

谢谢我将在'o.count'情况下编辑,但我想将UIImage转换为NSData以使用alamofire框架上传到服务器 –

+0

这样做吗?如果o.count == 1,错误仍然会发生? –

+0

是在if(o.count == 1)'我使用'let imgdata = UIImageJPEGRepresentation(self.o [0],10)'并打印它仍然是错误 –

相关问题