实施母公司->;使用跨多个实体的核心数据绑定在Cocoa中向下钻取子级
我正试图以iTunes体裁浏览器的风格为我的核心数据模型创建一个简单的界面 我有一个带有三个实体的模型设置:实施母公司->;使用跨多个实体的核心数据绑定在Cocoa中向下钻取子级,cocoa,core-data,cocoa-bindings,Cocoa,Core Data,Cocoa Bindings,我正试图以iTunes体裁浏览器的风格为我的核心数据模型创建一个简单的界面 我有一个带有三个实体的模型设置:Genre>Artist>Album 我只想将它们分别绑定到一个NSTableView,但从NSArrayController访问子关系似乎不符合KVC。因此,我很难将选定的流派对象传达给ArtistController 你是怎么做到的?在IB中甚至可以不使用任何自定义子类吗 为后代编辑:我做错了几件事 子控制器需要通过自己的绑定了解managedObjectContext 子控制器不能
Genre>Artist>Album
我只想将它们分别绑定到一个NSTableView,但从NSArrayController访问子关系似乎不符合KVC。因此,我很难将选定的流派对象传达给ArtistController
你是怎么做到的?在IB中甚至可以不使用任何自定义子类吗
为后代编辑:我做错了几件事
- 子控制器需要通过自己的绑定了解managedObjectContext
- 子控制器不能处于
模式,而是作为实体
类运行NSMutableDictionary
- 最后,子控制器不准备其数据。它通过
绑定从父级检索它。使用控制器键内容集
,以及连接到子项的模型键路径选择
呸。Brian的答案和都有助于确定我的错误(以及哪些部分是正确的)。我可能会采取的方法是为每个表视图使用单独的NSArrayController,然后让一个阵列控制器的内容基于另一个阵列控制器的选择 例如,假设您有一个显示可用类型列表的表视图A,那么它有一个数组控制器A,其内容连接到托管对象上下文 然后,假设您有表视图B,其中显示了表A中选择的任何类型的可用艺术家。该表将有自己的数组控制器B,并且控制器B的内容数组被绑定,因此IB中的“控制器键”字段被设置为控制器A的“选择”键,“艺术家”是模型键(这假设您的流派实体与艺术家实体具有名为“艺术家”的对多关系) 然后,您可以将相同的原则应用于第三个表视图+控制器,以显示选定艺术家的相册
这种设置的通用术语是“主-细节界面”,在苹果的文档中有概述,是的,这正是我尝试过的。我得到运行时错误:
[valueForUndefinedKey:]:实体MBGenre不符合关键“艺术家”的键值编码.
我尝试了六、七种不同的方式来处理孩子之间的关系,但都不管用。谢谢你的投入,这让我感觉不那么疯狂了。