有没有办法让 NSFetchedResultsController 检测多个实体的变化?

Posted

技术标签:

【中文标题】有没有办法让 NSFetchedResultsController 检测多个实体的变化?【英文标题】:Is there a way to have NSFetchedResultsController detect changes in more than one entity? 【发布时间】:2013-04-27 13:12:14 【问题描述】:

我有一个包含 3 个实体的简单 CoreData 模型的应用:

B A C

A 是主要对象,它与(聚合)2 个其他实体(B 和 C)有关系。

UI 在 UITableView 和详细视图(它是一个主/详细应用程序)中显示来自所有 3 个的一些数据。我的问题是,如果用户编辑当前查看的项目并修改 B 或 C 的属性,则键入 A 类型实体的 NSFetchedResultsController 不会通过 NSFetchedResultsControllerDelegate 调用。

从逻辑上讲,B/C 对象的更改是对正在显示的聚合的 A 的更改。有没有办法配置 fetch 或控制器,以便在这些实体类型中的任何一个发生变化时它会自行更新?

【问题讨论】:

我之前没有尝试过,但是尝试使用 'NSFecthRequest relationshipKeyPathsForPrefetching' 为传递给 FRC 的请求设置依赖关系。 这是我想到的,它并不能完全解决问题,它只会完成预取。不过感谢您的想法! 和this很像 【参考方案1】:

有多种解决方案。

    像上面 Dan Shelley 指出的 link 那样破解您的实体。 让您的视图控制器通过委托协议或通知相互监听并做出相应的反应。如果您没有涉及 Core Data 和 NSFetchedResultsController,这是标准方式。

【讨论】:

以上是关于有没有办法让 NSFetchedResultsController 检测多个实体的变化?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法让bmps透明?

有没有办法让 webview 显示 flash 内容?

有没有办法让 setTooltip() 区分大小写

有没有办法让这个功能更好? [复制]

有没有办法让对话框自行打开?

有没有办法让异步/等待流程短路?