我已經做了一個簡單的應用程序與CloudKit數據庫進行交互。本質上它只是一個日期選擇器和兩個按鈕,第一個按照設定的時間向數據庫中添加新記錄,第二個按鈕則檢索所有記錄。這似乎工作正常,但所有操作都非常緩慢。從saveRecord和performQuery中獲取響應大約需要10秒鐘。我究竟做錯了什麼?以下是檢索記錄的代碼。來自CloudKit API的響應時間慢?
@IBAction func retreiveButtonClick(sender: AnyObject) {
self.labelOutlet.text = "Waiting..."
func myHandler(results:[AnyObject]!, error:NSError!) {
if let err = error {
println("err: \(err.localizedDescription)")
} else {
self.labelOutlet.text = "Got \(results.count) results:"
for record in results {
let time = record.objectForKey("testTime") as NSDate
self.labelOutlet.text = self.labelOutlet.text + "\n\(time.description)"
}
}
}
var query = CKQuery(recordType:"TestTable", predicate:NSPredicate(value:true))
cloudDatabase.performQuery(query, inZoneWithID: nil, myHandler)
}
我在我的iPhone 5上測試了這個,它連接到本地WiFi。我注意到,在完成處理程序被調用(我有足夠的時間檢查)之前,保存的記錄顯示在CloudKit Dashboard中很久,所以我懷疑我在代碼中做了什麼錯誤。
這似乎工作,謝謝! – pc3e 2014-08-30 10:26:49
即使沒有其他代碼阻止主線程出於某種原因長時間延遲。無論如何,調用主線程修復延遲謝謝。 – malhal 2015-08-28 21:53:36