使用复杂的层次结构将数据保存在核心数据中

时间:2011-09-03 09:27:56

标签: iphone ios core-data

假设我们有以下实体。

  • 实体A
  • 实体B
  • 实体C

层次结构

  • A有很多Bs。
  • B有很多Cs
  • C的值为name。

我有三个视图控制器,每个都显示一个实体列表。第一个视图显示实体A.点击实体A后,它会列出该特定A中的所有实体B.点击B后,它会列出该特定B中的所有实体C.

我添加了A FirstA。第一个A有3个B&#39。这些B中的每一个都有7个C。 这目前存在于核心数据中。让我们说我想添加一个名为“奇妙”的新C'变成任意的B.

现在这里是让我最困惑的部分。目前在我看来,我会像这样添加它。列出所有的As。 (在这种情况下为1)。看看所有B的FirstA,直到我找到B我想要添加marvelous_C。我找到了这个b,然后将另一个C附加到已经存在的C列表中。保存核心数据。

这对我来说似乎是不明智的。有一个更好的方法吗?我可以遵循这个模型吗?让我们说我看着最后一个视图(在特定B中显示实体C的视图)。无论如何将其添加到该特定集合而不必遍历整个层次结构?

这篇文章可能令人困惑。等待任何澄清。谢谢!

2 个答案:

答案 0 :(得分:0)

在顶视图控制器中显示要添加另一个的C,只需保留对当前B的引用。这可能是所讨论的视图控制器的@property

这应该是最简单的解决方案。

答案 1 :(得分:0)

通常在核心数据中设置对象之间的关系时,也会设置反向关系。因此,您可以BC访问C.B 您还可以将CB之间的关系设置为C.B = B