我在核心数据方面存在问题,我使用的是一对一和一对多的关系。
1。让我们考虑一个父实体P1
和子实体C1
,C2
,C3
。
2。 C3
还有3个子实体C31
,C32
,C33
。
第3。如果我在C32
表中更新,删除或更改,我将从服务器获取父P1
的完整JSON。
有没有办法更改特定父表的所有子表? 基本上,如果在子表中进行任何更新或删除或更改,我将从服务器获取一个包含所有子表详细信息的新父表。
有没有办法在核心数据中处理这个问题?
答案 0 :(得分:0)
除了处理Core Data中的关系之外,您还要问的是如何通过基于JSON的API和本地Core Data镜像保持同步远程数据库。
在您描述的场景中,天真的方式是:
您从服务器获得完整的JSON;
用此标识您的父实体(例如根据其ID);
从本地数据库中删除父实体;如果您正确设置了模型,所有孩子也将被删除;
与所有孩子一起重新创建实体。
另一种可能的方法是,您获得完整的JSON,然后将JSON中的每个子项与Core Data中的每个子项进行比较,并删除JSON中不存在的子项。
最后,您可以考虑RestKIT,这是一个可以为您完成所有这些工作的框架 - 还有一些学习曲线,但它会为您处理所有细节。