标签没有出现在Swift中

时间:2015-02-01 05:15:32

标签: swift dictionary label cloudkit

所以我连接到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)
        }
    }

}

1 个答案:

答案 0 :(得分:0)

publicDB.performQuery是一个异步函数,它在后台执行。
UI更新应始终在主线程中执行。
您可以使用以下代码在主线程中设置文本。

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