2017-12-13 1 views
1

Cloudkin에 자산으로 저장된 이미지가 있습니다. 각 레코드에는 다른 속성도 있습니다. 레코드를 수집하고 다른 속성을 사용할 수는 있지만 ImageView에서 해당 애셋을 사용할 수 없습니다. 나는 스위프트 프로그래밍에 익숙하지 않기 때문에 내가받은 오류는 이해가되지 않는다.Cloudkit Assets을 UIimage로 사용

let container = CKContainer.default() 
let publicDB = container.publicCloudDatabase  

let query1 = CKQuery(recordType: "movieArray", predicate: predicate2) 
    publicDB.perform(query1, inZoneWith: nil) {(results:[CKRecord]?, error:Error?) in 
     if error != nil { 
      DispatchQueue.main.async { 
       print("Cloud Query Error - Fetch Establishments: \(String(describing: error))") 
      } 
      return 
     } 
     for record in results! { 
      DispatchQueue.main.async { 
       let asset = record["myImageKey"] as? CKAsset 
       let data = NSData(contentsOf: (asset?.fileURL)!) 
       let image = UIImage(data: data! as Data) 
       print("Test") 
       self.detailImage.image = image 
      } 
      self.movieCast.text = record.object(forKey: "Actors") as? String 
      self.detailDescriptionLabel.text = record.object(forKey: "Description") as? String 
      let youLink = record.object(forKey: "youtubeTag") as! String 
      self.loadYoutube(videoID: youLink) 
     } 
    } 

내가 오류는이 라인에 :

Thread 1: EXC_BREAKPOINT (code=1, subcode=0x1020527c4 

내가 메인 스레드에서 제거하려고 시도하지만 같은 오류가 나타날 수

let data = NSData(contentsOf: (asset?.fileURL)!) 

는 말한다.

답변

2

아마도 문제는 CKAsset 레코드는 0이지만, fileURL 값을 갖도록 강제하는 것입니다.

당신은 절대적으로 옳았다이 조각

if let asset = record["myImageKey"] as? CKAsset, 
    let data = try? Data(contentsOf: (asset.fileURL)), 
    let image = UIImage(data: data) 
{ 
    self.detailImage.image = image 
} 
+0

와 CloudKit 이미지를 얻기 위해보십시오. 내 Cloudkit 데이터에 오류가 있었으며 아무 값도로드하지 않았습니다. 감사! –