我将fetchResultedController
绑定到上下文,即reset
- ed。
之前我已在此上下文中添加了记录,didChangeObject
.Insert
调用了changeType
,但在reset
之后我期待didChangeObject
将使用.Delete
changeType
进行调用,但不会发生。
知道如何触发使用.Delete
参数接听电话吗?
答案 0 :(得分:4)
如果你看一下NSFetchedResultsController文档,就会有一个关于"处理对象失效的部分"其中陈述以下内容,
当托管对象上下文通知获取的结果控制器时 如果单个对象无效,控制器会处理这些对象 作为已删除的对象并发送正确的委托调用。
托管对象上下文中的所有对象都可能是 同时失效。 (例如,作为调用的结果 重置,或者从持久性存储中删除存储 协调器。)当发生这种情况时,NSFetchedResultsController不会 使所有对象无效,也不会发送单独的通知 对象删除。相反,您必须调用performFetch:来重置 然后控制器的状态在表视图中重新加载数据 (reloadData)。
正如文档所说,如果重置上下文或取消分配上下文,则不会调用任何单独的通知或委派方法。因此,您自己调用performFetch并然后重新输入接口是您的工作。