【发布时间】:2011-08-20 10:30:12
【问题描述】:
该应用程序允许管理供应商列表和这些供应商提供的产品列表。数据模型包含 2 个实体:供应商和产品。
供应商与产品具有一对多关系,删除规则设置为级联(因为如果供应商停业,我不想保留供应商产品的记录)。产品具有默认关系设置。
在 IB 中,我有 2 个阵列控制器。指向供应商实体,参数:MOC 绑定到 AppDelegate 和 MKP=managedObjectContext。另一个指向 Product 实体,Parameters: MOC 绑定到 AppDelegate 和 MKP=managedObjectContext,Controller Content: Content Set 绑定到 Suppliers 数组控制器,CK=selection 和 MKP=name_of_relation。
在界面上,我有 2 个用于供应商和产品的 NSTableView,以及用于从表中添加/删除的按钮。当我选择一个供应商时,只有其特定的产品会显示在产品表中。当我删除一个产品时,该产品从表中消失。它按预期工作。
我认为它工作得很好,直到有一天我很想知道 CoreData 是如何实际管理 SQLite 数据库中的数据字段和表的。所以我使用 Firefox 中的 SQLiteManager 插件打开它,然后……太可怕了!我看到产品没有被删除。数据还在!只有对供应商的引用被删除了,这就是为什么它不再出现在表格中,让我认为它已被正确删除。
我做错了什么?它与内容集绑定有关吗? 感谢您的建议。
【问题讨论】: