2

我将fetchResultedController绑定到上下文,即reset -ed。重置上下文不会触发fetchResultsController

它之前,我已经添加了一个记录这一背景下,didChangeObject是与.InsertchangeType调用,但reset后,我希望didChangeObject将调用与.DeletechangeType,但它并没有发生。

任何想法如何触发以.Delete参数接收呼叫?

回答

3

如果你看一下NSFetchedResultsController文档,有一个关于“处理对象失效”,其中列明了以下部分,

当管理对象上下文通知获取的成果控制器 个别对象被宣布无效的,控制器将这些 视为已删除的对象并发送正确的委托调用。

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

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

正如医生说,如果上下文复位或上下文被释放,没有一个单独的通知或委托方法被调用。因此,您自己调用performFetch并实时接入界面是您的工作。