Ios CloudKit未返回最新数据
我遇到了这样一个问题:我使用CloudKit将某些内容保存到icloud,但立即获取结果并不会返回插入的最新数据 范例Ios CloudKit未返回最新数据,ios,icloud,cloudkit,icloud-api,Ios,Icloud,Cloudkit,Icloud Api,我遇到了这样一个问题:我使用CloudKit将某些内容保存到icloud,但立即获取结果并不会返回插入的最新数据 范例 let todoRecord = CKRecord(recordType: "Todos") todoRecord.setValue(todo, forKey: "todotext") publicDB.saveRecord(todoRecord, completionHandler: { (record, error) -> Void in NSLog(
let todoRecord = CKRecord(recordType: "Todos")
todoRecord.setValue(todo, forKey: "todotext")
publicDB.saveRecord(todoRecord, completionHandler: { (record, error) -> Void in
NSLog("Saved in cloudkit")
let predicate = NSPredicate(value: true)
let query = CKQuery(recordType: "Todos",
predicate: predicate)
self.publicDB.performQuery(query, inZoneWithID: nil) {
results, error in
if error != nil {
dispatch_async(dispatch_get_main_queue()) {
self.delegate?.errorUpdating(error)
return
}
} else {
NSLog("###### fetch after save : \(results.count)")
dispatch_async(dispatch_get_main_queue()) {
self.delegate?.modelUpdated()
return
}
}
}
结果:
Before saving in cloud kit : 3
CloudKit[22799:882643] Saved in cloudkit
CloudKit[22799:882643] ###### Count after save : 3
伙计们,我在这里遗漏了什么吗?在CloudKit中保存记录和使用该记录中的值更新索引之间存在延迟 当
CKModifyRecordsOperation
成功完成时,您可以通过记录标识符立即获取该记录
但是,将记录添加到服务器上的搜索索引时会出现延迟,查询无法立即找到该记录
如果使用CKQuery
来备份视图,则需要保留一个已在本地修改的记录的边表,并将这些记录缝合到视图中,直到查询开始返回该记录。更新文档链接: