CKModifyRecordsOperation保存没有父项的子记录

时间:2015-08-01 11:12:14

标签: ios iphone core-data sync cloudkit

我正在尝试实现cloudkit记录的本地缓存。文档中提到“在保存操作期间,CloudKit会验证数据库中是否存在任何目标记录。如果无法验证目标记录是否存在,CloudKit会报告错误,并且不会保存包含对该目标的引用的记录。 “但是它没有那样工作,它保存了儿童记录而没有任何错误。

现在,在这种情况下,如果我按照以下步骤进行同步。

  1. 获取本地更改
  2. 将本地更改上传到云端
  3. 纠正冲突(如果有的话)
  4. 获取服务器更改
  5. 将服务器更改应用于本地
  6. 数据库可能因以下情况而损坏。

    1. 说D1,D2和云与1个Child和1个Parent记录同步
    2. 现在在D1设备上删除父和子,并与云同步。因此,在D1和Cloud上,子记录和父记录都将被删除。

    3. 在D2上,我们添加了一个新的子记录,现在我们同步这里发生的是New Child上传并且其父项和旧的子记录被删除,因此留下了一个没有父项的孩子。无论是在云端还是在D2设备上。

    4. 我正在按照以下方式创建参考

          CKRecord *newRecord = [[CKRecord alloc] initWithRecordType:ReferenceSubItemsRecordType];
          newRecord[NameField] = self.nameTextField.text;
          newRecord[ParentField] =[[CKReference alloc] initWithRecordID:self.parentRecordID action:CKReferenceActionDeleteSelf];
      

      我做错了吗?为什么我没有因上述情况而出错?

0 个答案:

没有答案