所以我连接到CloudKit数据库来存储用户可以看到的一堆问题。我将问题输出到标签,但它没有出现。意味着它不会更新。 println(results.description)
确实有效。这是代码:
@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 :(得分:0)
publicDB.performQuery
是一个异步函数,它在后台执行。
UI更新应始终在主线程中执行。
您可以使用以下代码在主线程中设置文本。
dispatch_async(dispatch_get_main_queue(), { () -> Void in
self.questions.text = results.description
})