【发布时间】:2018-10-27 03:44:20
【问题描述】:
我有一个使用 CloudKit 进行同步的应用程序,并且我维护了一个本地记录缓存。我遇到了一个我无法弄清楚的同步场景。
我正在使用公共数据库,当我的应用程序打开时,我希望能够获取我的应用程序在关闭时丢失的所有更新记录,或者在一个设备上该应用程序刚刚安装。
我可以通过创建NSPredicate 来比较modificationDate 来获取更新的记录,如下所示:
let predicate = NSPredicate(format: "modificationDate > %@", syncTimestamp as CVarArg)
let query = CKQuery(recordType: recordType, predicate: predicate)
但我不知道的部分是如何仅获取已添加到 CloudKit 服务器或从中删除的记录。
有人知道怎么做吗?我知道 Apple 在私有数据库中为此提供了一种方法,但我在这里使用的是公共数据库。
到目前为止,我唯一能想到的就是查询某个recordType 的所有记录,收集他们所有的recordNames 并与我的本地缓存进行比较。但最好有更聪明的方法,而不仅仅是提取大量数据并比较大量 recordNames 数组。
【问题讨论】:
标签: cloudkit