从 CoreData 刷新 NSTreeController

Posted

技术标签:

【中文标题】从 CoreData 刷新 NSTreeController【英文标题】:Refreshing NSTreeController from CoreData 【发布时间】:2016-06-08 10:44:22 【问题描述】:

我正在开发一个具有 NSOutlineView 的可可应用程序,该应用程序通过 CoreData 集成绑定到 NSTreeController。

出于某些目的,我删除了 NSTreeController 中的一些节点

MyTreeController.removeObjectAtArrangedObjectIndexPath(someIndexPath)

但是,我需要使用当前绑定从 CoreData 重新加载 NSTreeController。但是,由于 NSTreeController 没有重新加载数据功能,我找不到解决方案。

任何帮助或解决方法将不胜感激。

【问题讨论】:

重载数据函数调用fetch: @Willeke 感谢您的回复。在使用 MyTreeController.removeObjectAtArrangedObjectIndexPath(someIndexPath) commad 后,我尝试 fetch as MyTreeontroller.fetch(nil) 但删除的项目没有从上下文中收到。 对象是否从上下文中移除? 【参考方案1】:

针对与 Core Data 关联的 NSTreeController 调用 -removeObjectAtArrangedObjectIndexPath 将从 Core Data 中删除该对象。

之后调用-fetch:会导致数据返回,已经被删除了。

【讨论】:

以上是关于从 CoreData 刷新 NSTreeController的主要内容,如果未能解决你的问题,请参考以下文章

刷新 CoreData 表?

如何从 CoreData 获取完整的对象(不是故障)?

CoreData 删除后的列表刷新

在 CoreData 中更新项目不会刷新 tableView

应用程序更新之间的 CoreData,表示默认数据刷新

CoreData:获取请求不获取最后插入的记录?或者如何强制刷新获取请求