我有一个NSFetchedResultsController
(FRC)支持表视图。根据定义,它正在侦听与其定义的获取请求相关的托管对象上下文 (MOC) 中的更改。
虽然这个表视图是可见的,但我可能运行了一个小的导入(比如大约十几个记录),其中包含与观看 FRC 相关的托管对象。
我在对等 MOC 上运行导入到支持表视图的 MOC。两个 MOC 都是NSMainQueueConcurrencyType
,有一个共同的父 MOC NSPrivateQueueConcurrencyType
。
一旦导入完成并保存,我之前的设置通知就会触发一个处理程序,它只是执行一个mergeChangesFromContextDidSaveNotification:
- (void)scratchpadContextDidSave:(NSNotification *)saveNotification {
log4Info(@"Default Context now merging changes from Scratchpad Context save notification.");
[self.defaultContext mergeChangesFromContextDidSaveNotification:saveNotification];
}
问题:
如何mergeChangesFromContextDidSaveNotification:
在任何收听的 FRC 收到通知之前完成?
动机 FRC 的新数据在我的应用程序中充当某种触发器,这很好,只要所有合并的更改都可用。我的 FRC 立即行动,没有完整的信息。
我将删除需要 FRC 以这种方式保持耐心的逻辑,但它让我担心我不知道有一种方法可以在整个合并操作完成之前“锁定”更改通知发出。