2015-02-01 1 views
1

그래서 CloudKit 데이터베이스에 연결하여 사용자가 볼 수있는 일련의 질문을 저장합니다. 나는 라벨에 질문을 출력하지만, 나타나지는 않습니다. 그것이 업데이트되지 않는다는 것을 의미합니다. 그러나 println(results.description)은 작동합니다. 여기서 코드 :Swift에 라벨이 표시되지 않습니다.

@IBOutlet var questions: UILabel! 

@IBAction func getNewQbutton(sender: AnyObject) { 

    let container = CKContainer.defaultContainer() 
    var publicDB = container.publicCloudDatabase 


    let myQuery = CKQuery(recordType: "QuestionsTable", predicate: NSPredicate(value: true)) 


    publicDB.performQuery(myQuery, inZoneWithID: nil){ 
     results, error in 

     if error != nil { 
      println(error) 
     } 

     else 
     { 
      self.questions.text = results.description //problem here, won't update 
      println(results.description) 
     } 
    } 

} 

답변

0

publicDB.performQuery 백그라운드에서 실행하는 함수비동기이다.
UI 업데이트는 항상 주 스레드에서 수행해야합니다.
다음 코드를 사용하여 주 스레드의 텍스트를 설정할 수 있습니다.

dispatch_async(dispatch_get_main_queue(), {() -> Void in 
    self.questions.text = results.description 
})