- <李>
李> <李>
李> <李>
李>
官方推荐的方式,是尽量在代理的didChangeObject方法中处理tableView上对部分或者行的更新。不管对对象的操作是通过NSArray还是
对于对象相关的关系对象变化,比如帖子对象有个主人对象关系,老板发生了变化,如果会影响结果集,同样会触发帖子的didChangeObject方法,反之则不会。
遇到最多的问题是相关的模型有了更新,并在上下文保存了,但关联的代理的didChangeObject方法中没有被触发,总结了一下,原因主要有几个:
1。managedObejctContext不一致
2。分析下获取到控制器对应的谓词是否包含受影响的该模型,并检查由于该模型的相关属性变化后,它对应在结果集中是新增/更新/删除操作,那么在didChangeObject中就会触发到相应的NSFetchedResultsChange
3。当前返回的控制器的委托是否绑定到对应的代理上了
相关资料:https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/nsfetchedresultscontroller.html