实体具有一些共同属性时的模型结构

时间:2015-03-06 06:54:01

标签: ios core-data

我在Core Data中有2个实体,它们有一些共同的属性。我必须在同一列表视图中显示两个实体。这样做的最佳做法是什么?我可以做一些继承的事情并将公共属性放在基类中吗?

2 个答案:

答案 0 :(得分:0)

核心数据支持继承。 打开核心数据模型并选择子实体。确保显示实用程序窗格(Xcode中的右上角按钮)并选择"显示数据模型检查器" (实用程序窗格中最右侧的图标)。

您可以在此处为实体选择父实体。父项的所有属性都将在子实体中可用。

enter image description here

答案 1 :(得分:0)

  

这样做的最佳做法是什么?

这取决于您需要建模的实体类型。例如,如果您有CatDog,则应在基本实体(例如Animal或您想要的任何内容)中移动共同属性。换句话说,你应该有理由这样做,即实体彼此之间有某种关系。

  

我可以做一些继承的事情并将公共属性放在基类中吗?

当然可以。在模型中,您可以拥有一种类似于以下的继承模式。

enter image description here

,其中

enter image description here

我会在这里强调两件事。

首先,您可以将基本实体设为抽象实体。这样,就不允许您创建此实体的实例。

enter image description here

根据文件。

  

您可以指定实体是抽象的 - 也就是说,您不会   创建该实体的任何实例。您通常会创建一个实体   如果您有多个实体都表示,则为abstract   (继承)一个不应该的公共实体的特化   本身就是实例化的。例如,在绘图应用程序中   可能有一个Graphic实体定义x和y的属性   坐标,颜色和绘图边界。但是,你永远不会实例化   一个图形。 Graphic的具体子实体可能是Circle,TextArea和Line。

其次,在引擎盖下,Core Data将创建一个包含您已插入的所有属性的表。因此,如果您有很多属性,那么表格中会有很多列。

enter image description here