使用跨越多个实体的Core Data绑定在Cocoa中实现parent-> child drill down

使用跨越多个实体的Core Data绑定在Cocoa中实现parent-> child drill down,第1张

概述我正试图以iTunes Genre浏览器的风格为我的核心数据模型创建一个简单的界面. 我有一个具有三个实体的模型设置:Genre< - >>艺术家< - >>专辑. 我想简单地将它们分别绑定到NSTableView,但看起来好像从NSArrayController访问子关系不符合KVC.所以,我很难将所选的Genre对象传递给ArtistController. 你怎么做到这一点?在没有任何自定义子 我正试图以iTunes Genre浏览器的风格为我的核心数据模型创建一个简单的界面.

我有一个具有三个实体的模型设置:Genre< - >>艺术家< - >>专辑.

我想简单地将它们分别绑定到NStableVIEw,但看起来好像从NSArrayController访问子关系不符合KVC.所以,我很难将所选的Genre对象传递给ArtistController.

你怎么做到这一点?在没有任何自定义子类化的IB中甚至可能吗?

编辑后人:我做错了几件事.

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

唷. Brian的答案和this MacResearch tutorial都有助于确定我的错误(以及我有哪些部分).

解决方法 我可能采取的方法是为每个表视图设置一个单独的NSArrayController,然后让一个数组控制器的内容基于另一个数组控制器的选择.

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

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

然后,您可以将相同的原理应用于第三个表视图控制器,以显示所选艺术家的专辑.

这种设置的一般术语是“主 – 细节界面”,并在Apple的文档this link中进行了概述

总结

以上是内存溢出为你收集整理的使用跨越多个实体的Core Data绑定在Cocoa中实现parent-> child drill down全部内容,希望文章能够帮你解决使用跨越多个实体的Core Data绑定在Cocoa中实现parent-> child drill down所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1017276.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存