reset context不会触发fetchResultedController

时间:2015-05-19 15:32:31

标签: ios core-data nsfetchedresultscontroller nsmanagedobjectcontext

我将fetchResultedController绑定到上下文,即reset - ed。

之前我已在此上下文中添加了记录,didChangeObject .Insert调用了changeType,但在reset之后我期待didChangeObject将使用.Delete changeType进行调用,但不会发生。

知道如何触发使用.Delete参数接听电话吗?

1 个答案:

答案 0 :(得分:4)

如果你看一下NSFetchedResultsController文档,就会有一个关于"处理对象失效的部分"其中陈述以下内容,

  

当托管对象上下文通知获取的结果控制器时   如果单个对象无效,控制器会处理这些对象   作为已删除的对象并发送正确的委托调用。

     

托管对象上下文中的所有对象都可能是   同时失效。 (例如,作为调用的结果   重置,或者从持久性存储中删除存储   协调器。)当发生这种情况时,NSFetchedResultsController不会   使所有对象无效,也不会发送单独的通知   对象删除。相反,您必须调用performFetch:来重置   然后控制器的状态在表视图中重新加载数据   (reloadData)。

https://developer.apple.com/library/prerelease/ios/documentation/CoreData/Reference/NSFetchedResultsController_Class/index.html

正如文档所说,如果重置上下文或取消分配上下文,则不会调用任何单独的通知或委派方法。因此,您自己调用performFetch并然后重新输入接口是您的工作。