有没有办法让 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 检测多个实体的变化?的主要内容,如果未能解决你的问题,请参考以下文章