2016-08-03 62 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)'並打印它仍然是錯誤 –

相關問題