,FetchedResultsController与核心数据

<李>

<李>

<李>

官方推荐的方式,是尽量在代理的didChangeObject方法中处理tableView上对部分或者行的更新。不管对对象的操作是通过NSArray还是

对于对象相关的关系对象变化,比如帖子对象有个主人对象关系,老板发生了变化,如果会影响结果集,同样会触发帖子的didChangeObject方法,反之则不会。

遇到最多的问题是相关的模型有了更新,并在上下文保存了,但关联的代理的didChangeObject方法中没有被触发,总结了一下,原因主要有几个:

1。managedObejctContext不一致

2。分析下获取到控制器对应的谓词是否包含受影响的该模型,并检查由于该模型的相关属性变化后,它对应在结果集中是新增/更新/删除操作,那么在didChangeObject中就会触发到相应的NSFetchedResultsChange

3。当前返回的控制器的委托是否绑定到对应的代理上了

相关资料:https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/nsfetchedresultscontroller.html


,FetchedResultsController与核心数据