2

我有一个包含多个实体的核心数据模型,每个实体对应一个视图控制器,用户为每个实体插入信息,例如:

轮胎(第一个实体) - 类型(第一个属性),成本(第二个属性)。玻璃(第二个实体) - 颜色(第一个属性)、尺寸(第二个属性)、成本(第三个属性)。

对于每个实体,我都有一个带有文本字段的 MVC,用户为每个实体插入信息,所以如果你按下轮胎按钮,你会为其他实体插入一种轮胎、成本……等等。

当我只拉一个实体时一切顺利,我在文本字段中插入信息然后按保存,它很好地出现在我的 tableview 上!但是,正如您已经知道的那样,我希望将其余实体插入到我的 tableview 和不同的部分中。

我试过用“cellForRowAtIndexPath”“弄乱”,也在我的“fetchedResultsController”方法中用“if´s”和“swich´s”但没有成功。我在这里想念什么?!?!?!

谢谢,对不起我的英语。

4

1 回答 1

5

您需要一个实体才能NSFetchedResultsController正常工作并利用其高级内存和性能特性。

因此,修改您的数据模型并创建一个新实体,Item即其他实体的抽象父实体。(您可以在模型编辑器中分配父实体。)确保所有项目共享的属性(例如名称)属于父实体。这些应该是您希望在表格视图中显示的属性。

现在,您可以为每个子实体添加唯一的NSStringNSNumber属性,并在.typeNSFetchedResultsController

来自 Apple 的 [Core Data Programming guide][1] :

如果您定义实体继承层次结构(请参阅“实体继承”),当您将超实体指定为获取请求的实体时,该请求将返回超实体和子实体的所有匹配实例。在某些应用程序中,您可以将超实体指定为抽象的(请参阅“抽象实体”)。要获取抽象实体的所有具体子实体的匹配实例,请将要获取规范的实体设置为抽象实体。在“抽象实体”中描述的域的情况下,如果您使用 Graphic 实体指定提取请求,则提取将返回 Circle、TextArea 和 Line 的匹配实例。

因此,您获取 all Items,按 排序type,并为每个单元格确定类型并使用适当的属性填充文本标签。

于 2012-11-06T05:45:49.323 回答