2016-07-03 7 views
1

내 IOS 앱이 이미지 인 "파일"필드를 포함하는 JSON 개체를 검색하고 있습니다. 이 필드는 자료 64스위프트 2 JSON 바이트 배열을 UIImage로

JSON Serialization: Optional({ 
file = "/9j/4AAQSkZJRgABAQAAAQABAAD/........ 

에서 서버에서 인코딩 나는있는 UIImageView이 필드를로드해야합니다. 나는 성공하지 못한 채 여러 가지 방법을 시도했다. 나는이 분야 (자료 64 바이트 배열)를 검색하고있는 UIImage에 변환 할 수있는 방법 어떤 생각이 ...

 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는 무기 호입니다 : 여기 내 코드의 추출은?

답변

3

JSON에는 바이너리 데이터를 포함 할 수 없습니다. 문자열, 숫자, 불린 및 Null 만 포함 할 수 있습니다. 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

좋아요. 어떻게하면 imageArray를 UIImage로 변환 할 수 있습니까? 나는 self.ordoPhoto.image = UIImage (data : imageArray!)를 시도했지만 작동하지 않습니다. – tiamat

+0

"작동하지 않는다"는 의미를 명확히합니까? 빌드 타임 오류가 발생합니까? 앱이 다운 되나요? 또는 항상'nil' 또는 다른 것? – OOPer

+0

불명확 하다니 죄송합니다 .... 내 UIImageView ordoPhoto는 공백으로 남아 있습니다 .... self.ordoPhoto.image = UIImage (data : imageArray!) – tiamat

관련 문제