0
我有以下核心数据实体(管理对象)之间的关系层次:更新的UITableView当相关NSManagedObject更新
ENTITY1> ENTITY2> ENTITY3
有一个一比一的关系在Entity1
和Entity2
之间,以及Entity2
和Entity3
之间的一对多关系。
我有一个视图控制器,显示Entity1
记录列表,使用NSFetchedResultsController
。 UITableViewCell
显示来自Entity1
,Entity2
和Entity3
的信息。现在,当Entity1
对象被添加/更新/删除时,自动调用NSFetchedResultsControllerDelegate
方法,但是当相关的Entity2
或Entity3
记录被添加/更新/删除时,不调用委托方法。
在这种情况下,认识到相关记录已经更新并且需要更新UITableViewCell
的最佳或可能方法是什么?
这是一个不错的诀窍。 - 不用重写相关实体的访问器方法(如链接中所建议的),也可以侦听“NSManagedObjectContextObjectsDidChangeNotification”,如果“Entity2”或“Entity3”对象已更改,则将相关的“Entity1”对象标记为脏。 - 另一个想法:为“Entity1”添加一个瞬态“虚拟”属性。要将对象标记为脏,只需将值赋给dummy属性即可。 –
@MartinR感谢您的其他建议。 ;) –
willChange/DidChange显然不工作(已经不再),也没有设置一个值为零,然后回到真正的值...这对我来说这个窍门是引入了一个短暂的“脏”属性,并设置到时间戳。 – TheEye