我在Core Data中有2个实体,它们有一些共同的属性。我必须在同一列表视图中显示两个实体。这样做的最佳做法是什么?我可以做一些继承的事情并将公共属性放在基类中吗?
答案 0 :(得分:0)
核心数据支持继承。 打开核心数据模型并选择子实体。确保显示实用程序窗格(Xcode中的右上角按钮)并选择"显示数据模型检查器" (实用程序窗格中最右侧的图标)。
您可以在此处为实体选择父实体。父项的所有属性都将在子实体中可用。
答案 1 :(得分:0)
这样做的最佳做法是什么?
这取决于您需要建模的实体类型。例如,如果您有Cat
和Dog
,则应在基本实体(例如Animal
或您想要的任何内容)中移动共同属性。换句话说,你应该有理由这样做,即实体彼此之间有某种关系。
我可以做一些继承的事情并将公共属性放在基类中吗?
当然可以。在模型中,您可以拥有一种类似于以下的继承模式。
,其中
我会在这里强调两件事。
首先,您可以将基本实体设为抽象实体。这样,就不允许您创建此实体的实例。
根据文件。
您可以指定实体是抽象的 - 也就是说,您不会 创建该实体的任何实例。您通常会创建一个实体 如果您有多个实体都表示,则为abstract (继承)一个不应该的公共实体的特化 本身就是实例化的。例如,在绘图应用程序中 可能有一个Graphic实体定义x和y的属性 坐标,颜色和绘图边界。但是,你永远不会实例化 一个图形。 Graphic的具体子实体可能是Circle,TextArea和Line。
其次,在引擎盖下,Core Data将创建一个包含您已插入的所有属性的表。因此,如果您有很多属性,那么表格中会有很多列。