例
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 : 3CloudKit[22799:882643] Saved in cloudkitCloudKit[22799:882643] ###### Count after save : 3
我在这里缺少一些东西吗?
解决方法 当记录保存在CloudKit中时以及索引是否已被该记录中的值更新时,存在延迟.当CKModifyRecordsOperation成功完成时,您可以通过其记录标识符立即获取该记录.
但是,当记录被添加到服务器上的搜索索引时,存在延迟,并且查询将不会立即找到该记录.
如果您使用CKquery来返回视图,则需要保留已在本地进行修改的记录的边表,并将其注入视图,直到查询开始返回该记录.
总结以上是内存溢出为你收集整理的ios – CloudKit不返回最近的数据全部内容,希望文章能够帮你解决ios – CloudKit不返回最近的数据所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)