如何将 NSTreeController 的孩子绑定到订购到多关系的核心数据?

Posted

技术标签:

【中文标题】如何将 NSTreeController 的孩子绑定到订购到多关系的核心数据?【英文标题】:How to bind NSTreeController's Children to Core Data ordered to-many-relationship? 【发布时间】:2011-08-12 11:02:19 【问题描述】:

Apple 在 Lion 的 Core Data 中引入了有序对多关系。我创建了一个名为 TreeNode 的实体,它具有 1:1-object-relation、1:1-parent-relation 和有序的 to-many-relationship 子级。

然后我有一个NSTreeController,其中子键路径设置为 TreeNode.children。运行应用程序仅显示第一级元素。所以孩子没有工作。由于 children 是有序对多关系,因此相应的类有一个 NSOrderedSet children。我添加了一个自定义方法

- (NSArray *) childrenArray 
  return [children array];

到有效的 TreeNode。我找不到有关该主题的任何文档。将NSTreeController 绑定到有序的多对多关系真的是要走的路吗?提前致谢。

【问题讨论】:

我还没有使用过这样的有序关系,但是树控制器一直是出了名的挑剔。我建议先让它在没有排序的情况下工作,然后再添加排序。 我也遇到了同样的问题。有没有 NSTreeController 与 Ordered CoreData 关系一起工作的工作示例? 只需添加 childrenArray 方法就为我解决了问题! 【参考方案1】:

Apple 似乎为我们提供了 Core Data 的订购集,但忘记升级其绑定控制器。在您提出问题一年后,问题仍然存在。

看看:

https://github.com/robertjpayne/DDOutlineView

故事的寓意。使用有序关系时要小心,尝试自己实现,直到 Apple 完全实现该功能

【讨论】:

看来这还是个问题。 顺便说一句。我刚刚为此打开了一个错误报告......这可能会有所帮助:) Github 链接已损坏。正确的链接在这里:github.com/neostoic/DDOutlineView

以上是关于如何将 NSTreeController 的孩子绑定到订购到多关系的核心数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 NSTreeController、NSOutlineView 和 Core Data 与“不可见”的根项一起使用?

给定模型对象,如何在 NSTreeController 中找到索引路径?

将 NSTreeController 与 MagicalRecord 绑定

具有两个不同核心数据 NSManagedObject 实体的 NSTreeController

检索所有 NSTreeController 的对象

从 NSTreeController 中删除具有特定标题的对象