2016-07-03 6 views
1

私のIOSアプリケーションは、イメージである "file"フィールドを含むJSONオブジェクトを取得しています。 このフィールドは、ベース64Swift 2 JSON Byte array to UIImage

​​

にサーバーによって符号化され、私はUIImageViewでこのフィールドをロードする必要があります。私は何の成功もなしに複数の方法を試みた。ここに私のコードの抜粋です:

 let task = session.dataTaskWithRequest(request, completionHandler: { (data: NSData?, response: NSURLResponse?, error: NSError?) -> Void in 
     if (error == nil) { 

      let json: AnyObject? 
      let imageArray: NSData? 
      do{ 
      try json = NSJSONSerialization.JSONObjectWithData(data!, options: []) 
       imageArray = json!["file"] as? NSData 
       print("JSON file: \(imageArray)") 

      } 
     catch 
     { 
      print("error Serialization") 
      return 
     } 

しかしimageArrayはnilです...私はこの分野(基本64バイト配列)を取得し、UIImageに変換することができどのように任意のアイデア?

答えて

3

JSONにはバイナリデータを含めることはできません。文字列、数値、ブール値、およびヌルのみを含むことができます。あなたは、Base64 Stringをあなた自身のNSDataに変換する必要があります。

imageArray = json!["file"] as? NSDataを次の5行に置き換えます。

if let fileBase64 = json!["file"] as? String { 
    imageArray = NSData(base64EncodedString: fileBase64, options: []) 
} else { 
    print("missing `file` entry") 
} 
+0

ok、imageArrayをUIImageに変換するにはどうすればよいですか?私はself.ordoPhoto.image = UIImage(data:imageArray!)を試しましたが、うまくいきません。 – tiamat

+0

「うまくいかない」という意味を明確にしていますか?それはビルド時エラーを生成しますか?あなたのアプリクラッシュを引き起こしますか?または常に 'nil'または何か他のもの? – OOPer

+0

私のUIImageView ordoPhotoは空白のままです... self.ordoPhoto.image = UIImage(data:imageArray!) – tiamat