gpt4 book ai didi

cocoa - 使用跨多个实体的 Core Data 绑定(bind)在 Cocoa 中实现父->子钻取

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

我正在尝试以 iTunes Genre 浏览器的风格为我的核心数据模型创建一个简单的界面。

我有一个包含三个实体的模型设置:Genre <-->> Artist <-->> Album .

我想简单地将它们分别绑定(bind)到 NSTableView,但似乎从 NSArrayController 访问子关系不符合 KVC。因此,我很难将选定的 Genre 对象传达给 ArtistController。

你是如何做到这一点的?在 IB 中是否有可能没有任何自定义子类化?

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

  • 子 Controller 需要通过其自己的绑定(bind)了解 ManagedObjectContext。
  • 子 Controller 不得位于 Entity 中。模式,而是作为 NSMutableDictionary 运行类。
  • 最后,子 Controller 不准备其数据。它通过 Content Set 从父级检索它。捆绑。使用 Controller 键selection ,以及连接到子级的模型关键路径。

。布莱恩的回答和 this MacResearch tutorial有助于确定我的错误(以及我的哪些部分是正确的)。

最佳答案

我可能采取的方法是为每个 TableView 都有一个单独的 NSArrayController,然后让一个数组 Controller 的内容基于另一个数组 Controller 的选择。

例如,假设您有一个显示可用流派列表的 TableView A,因此它有一个数组 Controller A,其内容连接到您的托管对象上下文。

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

然后,您可以将相同的原理应用于第三个 TableView + Controller 来显示所选艺术家的专辑。

这种设置的通用术语是“主从界面”,Apple 文档 this link 对此进行了概述。

关于cocoa - 使用跨多个实体的 Core Data 绑定(bind)在 Cocoa 中实现父->子钻取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1697872/

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