我将一个或多个远程文件中的数据读入coredata。如果更改了远程文件,则需要更新核心数据中的数据。例如,假设一个文件填充了部门,另一个文件填充了员工。 在重组公司时,将重命名一个部门,并在文件中删除第二个没有员工的部门。员工文件没有更改,所以我只想重新阅读部门文件。在我的代码中,我读取了该文件,从coredata获取部门并更新其name属性。但由于第二个部门已不在文件中,我想从核心数据中删除它。 我的伪代码解决方案如下:
不知何故看起来效率不高。删除所有部门并构建新部门似乎效率也不高,因为核心数据将删除所有部门的员工,现在我也必须重新阅读员工(可能还有所有其他文件)。
有没有更好的方法来解决这个数据变得多余的问题?如果你用代码回答,最好是swift。
答案 0 :(得分:0)
首先,删除规则不应该级联 - 将其更改为nullify。 从服务器获取新数据时,请按照以下步骤操作:
objectsToDelete
objectsToDelete
中还有任何对象,则删除它们员工的原则是一样的。您使用字典匹配已有的字典,并删除那些不匹配的字典。