ios - 当相关的 NSManagedObject 更新时更新 UITableView

标签 ios core-data nsfetchedresultscontroller nsmanagedobjectcontext

我在核心数据实体(托管对象)之间具有以下关系层次结构:

Entity1 > Entity2 > Entity3

Entity1Entity2是一对一的关系,Entity2是一对多的关系实体3

我有一个显示 Entity1 记录列表的 View Controller ,使用 NSFetchedResultsControllerUITableViewCell 显示来自 Entity1Entity2Entity3 的信息。现在,NSFetchedResultsControllerDelegate 方法在 Entity1 对象被添加/更新/删除时被自动调用,但是当相关的 Entity2Entity3 添加/更新/删除记录,不调用委托(delegate)方法。

在这种情况下,识别相关记录已更新并且 UITableViewCell 也需要更新的最佳或可行方法是什么?

最佳答案

您需要弄脏其他实体的属性。换句话说,你应该打电话

[self willChangeValueForKey:@"someProperty"];
[self didChangeValueForKey:@"someProperty"];

在您要更新的实体上。

这里有一个示例解决方案,可以实现您想要实现的目标。

NSFetchedResultsController pitfall

希望对您有所帮助。

关于ios - 当相关的 NSManagedObject 更新时更新 UITableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14453950/

相关文章:

ios - 我的应用程序可以访问 iOS 中的 Notes(Apple 应用程序)文件夹吗?

ios - 核心数据应用组同步(带扩展)

iphone - 防止 NSManagedObjectContextDidSaveNotification 事件重叠

ios - 为什么我能够访问 Core Data 中除图像属性之外的所有属性? (这是二进制数据?)

ios - [上下文保存]后,用于关系的核心数据 NSPredicate 不起作用

ios - 如何从另一个 View Controller 更新 UITableView?

iphone - initWithNibName 未按预期工作

带有用于切换的容器 View 的 iOS Swift 分段控件 - View 不是第一次加载

ios - 聚合函数如何处理 Core Data 中的一对多关系

ios - 在 UITableView 中插入一行后调用 numberOfSectionsInTableView