核心数据:继承的实体

时间:2013-04-14 22:16:25

标签: ios core-data inheritance

在Core Data中存储继承实体的正确方法是什么? 假设我有一个Shape实体(可以是)抽象和相应的Shape类。 有Shape的子实体/子类:Circle,Rectangle,Triangle。

我需要将所有形状放在UITableView中(可能在不同的部分,甚至不是)。

我应该如何存储所有这些形状?

  1. 作为Shape实体,然后在获取之后和添加到数据源数组之前将它们转换为具体的Shape子类
  2. 作为具体的形状实体,然后在一个数组中获取并连接它们作为UITableView的数据源
  3. 我认为第一种方式甚至不可能......

    可能还有其他方法吗?

    谢谢!

1 个答案:

答案 0 :(得分:4)

您需要将shape声明为抽象实体,并将Circle和其他声明为Shape的子实体。当您执行提取时,可以在NSFetchRequest对象上使用setIncludesSubentities:来获取Shape和所有子实体(如果这是您想要做的,将它们放在一个数组上)。