Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
实施母公司->;使用跨多个实体的核心数据绑定在Cocoa中向下钻取子级_Cocoa_Core Data_Cocoa Bindings - Fatal编程技术网

实施母公司->;使用跨多个实体的核心数据绑定在Cocoa中向下钻取子级

实施母公司->;使用跨多个实体的核心数据绑定在Cocoa中向下钻取子级,cocoa,core-data,cocoa-bindings,Cocoa,Core Data,Cocoa Bindings,我正试图以iTunes体裁浏览器的风格为我的核心数据模型创建一个简单的界面 我有一个带有三个实体的模型设置:Genre>Artist>Album 我只想将它们分别绑定到一个NSTableView,但从NSArrayController访问子关系似乎不符合KVC。因此,我很难将选定的流派对象传达给ArtistController 你是怎么做到的?在IB中甚至可以不使用任何自定义子类吗 为后代编辑:我做错了几件事 子控制器需要通过自己的绑定了解managedObjectContext 子控制器不能

我正试图以iTunes体裁浏览器的风格为我的核心数据模型创建一个简单的界面

我有一个带有三个实体的模型设置:
Genre>Artist>Album

我只想将它们分别绑定到一个NSTableView,但从NSArrayController访问子关系似乎不符合KVC。因此,我很难将选定的流派对象传达给ArtistController

你是怎么做到的?在IB中甚至可以不使用任何自定义子类吗

为后代编辑:我做错了几件事

  • 子控制器需要通过自己的绑定了解managedObjectContext
  • 子控制器不能处于
    实体
    模式,而是作为
    NSMutableDictionary
    类运行
  • 最后,子控制器不准备其数据。它通过
    内容集
    绑定从父级检索它。使用控制器键
    选择
    ,以及连接到子项的模型键路径

呸。Brian的答案和都有助于确定我的错误(以及哪些部分是正确的)。

我可能会采取的方法是为每个表视图使用单独的NSArrayController,然后让一个阵列控制器的内容基于另一个阵列控制器的选择

例如,假设您有一个显示可用类型列表的表视图A,那么它有一个数组控制器A,其内容连接到托管对象上下文

然后,假设您有表视图B,其中显示了表A中选择的任何类型的可用艺术家。该表将有自己的数组控制器B,并且控制器B的内容数组被绑定,因此IB中的“控制器键”字段被设置为控制器A的“选择”键,“艺术家”是模型键(这假设您的流派实体与艺术家实体具有名为“艺术家”的对多关系)

然后,您可以将相同的原则应用于第三个表视图+控制器,以显示选定艺术家的相册


这种设置的通用术语是“主-细节界面”,在苹果的文档中有概述,是的,这正是我尝试过的。我得到运行时错误:
[valueForUndefinedKey:]:实体MBGenre不符合关键“艺术家”的键值编码.
我尝试了六、七种不同的方式来处理孩子之间的关系,但都不管用。谢谢你的投入,这让我感觉不那么疯狂了。