我在核心数据实体(托管对象)之间具有以下关系层次结构:
Entity1 > Entity2 > Entity3
Entity1
和Entity2
是一对一的关系,Entity2
和是一对多的关系实体3
。
我有一个显示 Entity1
记录列表的 View Controller ,使用 NSFetchedResultsController
。 UITableViewCell
显示来自 Entity1
、Entity2
和 Entity3
的信息。现在,NSFetchedResultsControllerDelegate
方法在 Entity1
对象被添加/更新/删除时被自动调用,但是当相关的 Entity2
或 Entity3
添加/更新/删除记录,不调用委托(delegate)方法。
在这种情况下,识别相关记录已更新并且 UITableViewCell
也需要更新的最佳或可行方法是什么?
最佳答案
您需要弄脏其他实体的属性。换句话说,你应该打电话
[self willChangeValueForKey:@"someProperty"];
[self didChangeValueForKey:@"someProperty"];
在您要更新的实体上。
这里有一个示例解决方案,可以实现您想要实现的目标。
NSFetchedResultsController pitfall
希望对您有所帮助。
关于ios - 当相关的 NSManagedObject 更新时更新 UITableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14453950/