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

问题描述

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

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

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

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

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

我该如何调和?

我唯一想到的是:

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

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)