Cocoa 如何使用核心数据将iTunes样式的源列表绑定到NSTableView?

Cocoa 如何使用核心数据将iTunes样式的源列表绑定到NSTableView?,cocoa,core-data,cocoa-bindings,nsarraycontroller,Cocoa,Core Data,Cocoa Bindings,Nsarraycontroller,我的应用程序中有一个iTunes风格的界面:左侧的Source list(NSOutlineView)包含不同的库和播放列表,界面右侧的NSTableView显示“演示”信息。与iTunes类似,无论是否选择了库或播放列表(标题、作者、创建日期等),我都会在表视图中显示相同类型的信息 我目前有一个NSArrayController连接到我的NSTableView,并根据在源列表中选择的内容设置获取谓词。这在选择库时效果很好,因为我只需将fetch谓词设置为按表示核心数据实体中的“type”字段

我的应用程序中有一个iTunes风格的界面:左侧的Source list(NSOutlineView)包含不同的库和播放列表,界面右侧的NSTableView显示“演示”信息。与iTunes类似,无论是否选择了库或播放列表(标题、作者、创建日期等),我都会在表视图中显示相同类型的信息

我目前有一个NSArrayController连接到我的NSTableView,并根据在源列表中选择的内容设置获取谓词。这在选择库时效果很好,因为我只需将fetch谓词设置为按表示核心数据实体中的“type”字段进行过滤。但是,当我尝试调整播放列表的提取谓词时,似乎没有任何方法可以设置提取谓词,因为我在播放列表和演示之间有一个表,以跟上播放列表中的顺序。根据Apple文档,这些类型的谓词对于核心数据是不可行的(它基本上没有多个内部连接)。下面是我的数据模型的相关部分


我的数据模型设置是否不正确?我是否应该放下NSArrayController并手动将NSTableView连接起来?我正在试图找出是否存在一个简单的修复,或者确实存在一个设计缺陷。

有一个在CoreData中创建关系的文档


但是,从DB模型来看,您使用三个表做得很好:

演示文稿
包含歌曲信息
playlitem
与演示文稿的一对一关系
播放列表
与播放项目的
一对多关系

演示文稿
[ID TITLE URL相册艺术家…]

playlitem
[ID演示\u ID Playlist\u ID]

播放列表
[ID Title MoreInfo]

因此,在IB CoreData实现语言中:

  • 从取出每个播放列表开始,在左栏中显示NSOutlineView
  • 在选择时,获取播放列表ID并根据播放列表ID筛选获取所有播放项目
  • PlayItem将包含演示对象以访问相关歌曲信息
是的,如果我是你,我会优先考虑手动连接nstableview