我是一个长期的倾听者,但第一次来这里…希望你能帮我解决一个核心数据问题!
我正在为 iPad 创建一个自定义业务应用程序,允许用户填写他们业务中常用的契约(Contract)。有四个契约(Contract),每个契约(Contract)有 20 到 40 个数据字段,它们完全不同,但有几个 (3-4) 个字段是所有四个共有的,例如创建日期和供应商名称等。
我需要在 UITableView 中一起显示所有契约(Contract)(分组样式以显示不同类型),我需要能够选择一个单元格并显示详细信息 View ,以便用户可以查看和修改数据具体契约(Contract)。
我迄今为止的研究告诉我,我应该使用一个父实体(实体 A)列出所有共有的属性,然后使用子实体(实体 B、C、D 和 E,代表四个契约(Contract)中的每一个)具有它们独有的属性,并从实体 A 继承其余属性。
这是构建此数据模型的最佳方式吗?请记住,当我创建契约(Contract)的新实例时,它需要是一个独立的对象,具有其所有属性以及父对象的属性。如果是这样,当我为我的 tableView 生成单元格时,我是获取实体 A 并希望其余的也一起出现,还是我为每个契约(Contract)类型单独获取请求并以这种方式添加到表中?相反,如果我想创建一个新的契约(Contract)实例(比如我的数据模型中的实体 B),我该怎么做?
我希望我已经解释得够清楚了。感谢您对此的帮助!
最佳答案
您应该使用您的公共(public)字段创建一个抽象实体,并从那里继承您的不同契约(Contract)类型。来自documentation :
In a model, entities may be arranged in an inheritance hierarchy, and entities may be specified as abstract.
这还将使您能够为所有合约定义通用行为,并在代码中使用抽象父类(super class)来引用任何合约。
关于ios - 核心数据 : How to structure a data model with a parent entity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7959569/