gpt4 book ai didi

cocoa - 如何使用 Core Data 将 iTunes 样式源列表绑定(bind)到 NSTableView?

转载 作者:行者123 更新时间:2023-12-03 16:09:53 24 4
gpt4 key购买 nike

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

alt text

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

alt text

我的数据模型设置是否不正确?我应该删除 NSArrayController 并手动连接 NSTableView 吗?我试图找出是否有一个简单的修复方法,或者确实是一个设计缺陷。

最佳答案

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

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdRelationships.html
http://developer.apple.com/library/mac/#documentation/cocoa/conceptual/CoreData/Articles/cdBindings.html

但是从您的数据库模型来看,您使用三个表是正确的:

演示 包含有关歌曲的信息与演示文稿具有一对一关系的PlaylistItem与 PlaylistItem 具有一对多关系的 Playlist

演示[ID 标题 URL 专辑艺术家 ....]
PlaylistItem [IDPresentation_ID Playlist_ID]
播放列表 [ID 标题更多信息]

所以用 IB CoreData 实现的语言来说:

  • 首先将每个播放列表提取到左列中的 NSOutlineView
  • 选择时,获取播放列表 ID 并根据 Playlist_ID 过滤获取所有 PlaylistItem
  • PlaylistItem 内部将包含演示对象以访问相关歌曲信息

是的,如果我是你,我会更愿意手动连接 nstableview

关于cocoa - 如何使用 Core Data 将 iTunes 样式源列表绑定(bind)到 NSTableView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2441053/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com