Tôi đã tạo một ứng dụng đơn giản để tương tác với cơ sở dữ liệu CloudKit. Về cơ bản nó chỉ là một bộ chọn ngày và hai nút, lần đầu tiên thêm một bản ghi mới với thời gian đã đặt vào cơ sở dữ liệu, và lần thứ hai lấy tất cả các bản ghi. Điều này dường như làm việc tốt ngoại trừ tất cả các hoạt động rất chậm. Mất khoảng 10 giây để nhận phản hồi từ cả saveRecord và performQuery. Tôi đang làm gì sai? Dưới đây là mã truy xuất hồ sơ.Thời gian phản hồi chậm từ API CloudKit?
@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)
}
Tôi đang thử nghiệm điều này trên iPhone 5, được kết nối với WiFi cục bộ. Tôi đã nhận thấy rằng các bản ghi đã lưu xuất hiện trong Bảng điều khiển CloudKit từ lâu trước khi trình xử lý hoàn thành được gọi (mà tôi có nhiều thời gian để kiểm tra), vì vậy tôi nghi ngờ tôi đã làm điều gì sai trong mã của mình.
Đó dường như làm việc, cảm ơn bạn! – pc3e
Ngay cả khi không có mã nào khác giữ nguyên chủ đề chính, có một sự trì hoãn lâu vì một số lý do. Dù sao gọi chủ đề chính sửa chữa sự chậm trễ nhờ. – malhal