我有一个像这样的基本核心数据模型:
类别
-类名称(字符串)
关系:HasDetails(对多个) - 到详细信息
详情
-数字(整数)
-名称(字符串)
关系:IsPartOfClass - 到类
我有两个 TableView ,一个用于“类”,一个用于“详细信息”,并且设置了所有绑定(bind),但是,当我将新对象添加到详细信息时,它会在我需要时显示所有类仅显示一个,即所选的一个
最佳答案
这里缺少很多信息,并且您对实体的描述令人困惑。我强烈建议您将来花时间提供更多详细信息。
听起来好像您有一个类<---->>详细信息(一对多关系:一个类有许多详细信息,一个详细信息有一个类)。是这样吗?
假设类的详细信息关系称为“详细信息”,详细信息的类关系称为“类”,并且所有内容都在托管对象模型中正确设置(反向关系几乎总是正确的做法),那么您想要以下内容:
- 设置为实体模式的“类”数组 Controller ,实体名称设置为“类”。 ManagedObjectContext 也需要绑定(bind)。您的类(class) TableView 将与此绑定(bind)。
- “详细信息”数组 Controller ,也设置为实体模式,实体名称为“详细信息”。您将其“contentSet”绑定(bind)到类数组 Controller 的“selection.details”。这将仅向您的详细信息数组 Controller 提供所选类的详细信息。 ManagedObjectContext 也需要绑定(bind)。您的详细信息 TableView 将与此绑定(bind)。
通过执行此操作,调用详细信息数组 Controller 的 -add: -insert: 和 -delete:(或者是“-remove:”?)方法(例如从按钮)将自动正确处理关系(将添加新的“Detail”实例添加到所选“Class”实例的详细信息集中。
确保将添加/插入/删除按钮的启用状态绑定(bind)到数组 Controller 的“canAdd”和“canRemove”(或者是“canDelete”?)属性,以便在所需的选项中没有选择时禁用它们地点。
关于Cocoa:核心数据关系不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2258978/