如何处理CORE DATA中的一对多关系

时间:2014-07-04 07:38:27

标签: ios core-data iphonecoredatarecipes

我在核心数据方面存在问题,我使用的是一对一和一对多的关系。

1。让我们考虑一个父实体P1和子实体C1C2C3

2。 C3还有3个子实体C31C32C33

第3。如果我在C32表中更新,删除或更改,我将从服务器获取父P1的完整JSON。

有没有办法更改特定父表的所有子表? 基本上,如果在子表中进行任何更新或删除或更改,我将从服务器获取一个包含所有子表详细信息的新父表。

有没有办法在核心数据中处理这个问题?

1 个答案:

答案 0 :(得分:0)

除了处理Core Data中的关系之外,您还要问的是如何通过基于JSON的API和本地Core Data镜像保持同步远程数据库。

在您描述的场景中,天真的方式是:

  1. 您从服务器获得完整的JSON;

  2. 用此标识您的父实体(例如根据其ID);

  3. 从本地数据库中删除父实体;如果您正确设置了模型,所有孩子也将被删除;

  4. 与所有孩子一起重新创建实体。

  5. 另一种可能的方法是,您获得完整的JSON,然后将JSON中的每个子项与Core Data中的每个子项进行比较,并删除JSON中不存在的子项。

    最后,您可以考虑RestKIT,这是一个可以为您完成所有这些工作的框架 - 还有一些学习曲线,但它会为您处理所有细节。