通过核心数据加载文件后,NSBrowser 不会从 NSTreeController 重新填充子项

Posted

技术标签:

【中文标题】通过核心数据加载文件后,NSBrowser 不会从 NSTreeController 重新填充子项【英文标题】:NSBrowser not Repopulating children from NSTreeController after File Load via Core Data 【发布时间】:2014-11-23 04:58:57 【问题描述】:

我有一个基于核心数据的文档支持的应用程序,它大量使用可可绑定。我正在使用 NSTreeController 来填充 NSBrowser。主要实体有一组孩子,可通过称为“孩子”的关系访问。添加孩子并在 NSBrowser 中显示它们没有问题。但是,在我保存文档并重新打开它之后,浏览器中只显示主要实体,而不是它们的子实体。我已经通过检查文件验证了孩子们与主要实体的正确关系(和反向)一起被保存。有没有其他人见过这个?是否有一些我可能遗漏的明显绑定/设置?

【问题讨论】:

重新打开时叶子和计数键路径不会误导? 我没有使用计数,而叶子只是一个 BOOL,对于父母来说是 NO,对于孩子来说是 YES。 我不想让这个问题过于复杂,但从技术上讲,它是一个 3 窗格 NSBrowser,孩子们也有孩子,这是真正的叶子。它进入部分->问题->答案,前两个叶子设置为否,答案设置为是。问题和答案可通过儿童访问。 【参考方案1】:

我没有提到我正在使用有序关系。似乎这种行为(或缺乏行为)与 Core Data 在关系中使用有序集的错误有关。我将关系更改为不排序,保存后它们开始正确加载。有关更多信息,请参阅此问题: How to bind NSTreeController's Children to Core Data ordered to-many-relationship?

【讨论】:

以上是关于通过核心数据加载文件后,NSBrowser 不会从 NSTreeController 重新填充子项的主要内容,如果未能解决你的问题,请参考以下文章

加载主 TableViewController 后,值从核心数据中消失

iCloud 同步后 UITableView 不会重新加载(Swift 2)

EF Core 5.0.4 - 从核心 3.1 升级后,通过 Include() 的急切加载不起作用

使用目标 c 后,UiViewController 不会从标签栏项目中快速加载

使用目标 c 后,UiViewController 不会从标签栏项目中快速加载

将核心数据加载到数组中,然后填充表视图,重新排序数组对象不会持久