gpt4 book ai didi

swift - CloudKit API 的响应时间很慢?

转载 作者:搜寻专家 更新时间:2023-10-30 21:54:12 24 4
gpt4 key购买 nike

我制作了一个与 CloudKit 数据库交互的简单应用程序。本质上它只是一个日期选择器和两个按钮,第一个按钮将带有设置时间的新记录添加到数据库中,第二个按钮检索所有记录。除了所有操作都非常慢之外,这似乎工作正常。从 saveRecord 和 performQuery 获得响应大约需要 10 秒。我究竟做错了什么?以下是检索记录的代码。

@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 仪表板中(我有足够的时间来检查),所以我怀疑我的代码做错了什么。

最佳答案

您的处理程序将在后台线程中调用。您应该在主线程上执行所有 UI 操作。您可以将所有 myHandler 代码放在一个 block 中,例如:

func myHandler(results:[AnyObject]!, error:NSError!) {
NSOperationQueue.mainQueue().addOperationWithBlock({
// ... put here your function code.
})
}

可能是其他代码正在主队列上执行,可能会阻止此代码的执行。确保在后台队列上执行持久代码。

除此之外,您的代码没有任何问题。

关于swift - CloudKit API 的响应时间很慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25555187/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com