CloudKit公共数据库-同步陈旧记录

时间:2020-09-03 20:04:29

标签: cloudkit cksubscription ckqueryoperation

我正在使用CloudKit Public数据库在设备之间同步数据。我正在同步带有本地持久性选项(Realm)的CKRecord。我 不是 使用NSPersistentCloudKitContainer

由于我正在使用Public数据库,因此(据我了解)意味着:

  • 我无法获取区域中的记录更改,因为这仅在Private数据库中起作用。
  • 但是,我 可以 创建CKQuerySubscription,并收到CKRecord更改的通知。

我遇到的问题是,当我的应用程序错过了CloudKit的后台通知时,知道如何进行CKRecord更改。

想象一下,用户an上飞机airplane而笔记本电脑关闭了一段时间??。如果在此期间有人更改了记录,则飞机上的用户将错过通知,现在在他们的设备上拥有该记录的陈旧版本。

我该如何调和?

我唯一想到的是:

  1. 定期使用PublicCKQueryOperation数据库中获取 所有 记录。
  2. CKRecord与设备上的本地数据进行比较。
  3. 使用CloudKit数据更新所有过时的数据。

是否有更好的方法通过CloudKit完成此操作?

0 个答案:

没有答案
相关问题