我正在尝试实现cloudkit记录的本地缓存。文档中提到“在保存操作期间,CloudKit会验证数据库中是否存在任何目标记录。如果无法验证目标记录是否存在,CloudKit会报告错误,并且不会保存包含对该目标的引用的记录。 “但是它没有那样工作,它保存了儿童记录而没有任何错误。
现在,在这种情况下,如果我按照以下步骤进行同步。
数据库可能因以下情况而损坏。
现在在D1设备上删除父和子,并与云同步。因此,在D1和Cloud上,子记录和父记录都将被删除。
在D2上,我们添加了一个新的子记录,现在我们同步这里发生的是New Child上传并且其父项和旧的子记录被删除,因此留下了一个没有父项的孩子。无论是在云端还是在D2设备上。
我正在按照以下方式创建参考
CKRecord *newRecord = [[CKRecord alloc] initWithRecordType:ReferenceSubItemsRecordType];
newRecord[NameField] = self.nameTextField.text;
newRecord[ParentField] =[[CKReference alloc] initWithRecordID:self.parentRecordID action:CKReferenceActionDeleteSelf];
我做错了吗?为什么我没有因上述情况而出错?