使用CKModifyOperation与CoreData同步的Cloudkit Sync

我正尝试同步cloudkit和coredata。 有两张表格:

  • 孩子(孩子有一个CK引用给父母,即从孩子到父母的后向引用。)
  • 现在根据苹果,这是我们必须遵循的步骤。

  • 获取本地更改 - 通过维护每个记录的更新变量完成。 说3删除,1创建和2更新。
  • 将本地更改上传到云 - 在此我使用CKModifyRecordsOperation并提供插入的记录,其中更新值为1或3和2作为删除的记录。 (原子避免不一致)
  • 如果有纠正冲突(所以这里选择修改日期更长的记录并且冲突得到解决。)
  • 获取服务器更改(这里,通过CKFetchChangesOperation获取从最后一个更改标记到服务器的任何更改)
  • 将服务器更改应用到local()
  • 现在说我有2个设备,并且已经将它们与以下数据同步

  • 家长1
  • P1-Child1(引用Parent-1)
  • 现在在1个设备中,我删除了Parent-1和P1-Child1并让它同步到云。 在cloudkit仪表板上,我验证父和子都已成功删除。

    在设备2中,现在我将P1-Child2另一个孩子添加到以前的父母。 考虑上述步骤

  • LocalChanges: - (P1-Child2)
  • 上传到云: - (P1-Child2)
  • 冲突: - 无
  • 从云中提取更改:(插入:P1-Child2,删除:Parent-1,P1-Child1)
  • 将其应用于本地。
  • 没有父母的情况下,P1-Child2在Cloud上成功保存。 所以现在我们留下了没有父母的孩子记录。

    你们能帮我找出解决这个问题的正确方法吗? 我想,如果苹果可能在CKModifyOperation上提供了错误,那么我可以知道父记录不存在,我可以重新保存或上传父记录以及孩子。

    链接地址: http://www.djcxy.com/p/62133.html

    上一篇: Cloudkit Sync With CoreData Issue with CKModifyOperation

    下一篇: What is a web service endpoint?