我正在使用NSPersistentContainer
来管理我应用的核心数据堆栈。如您所知,它具有viewContext
属性,该属性与应用程序主UI线程中的主队列相关联。我用它来读取数据库中的数据。为了编写新数据(在后台NSOperation
完成),我通过newBackgroundContext()
使用背景上下文,然后使用save()
后台上下文直到持久存储。
现在,viewContext
上的文档说明了这一点:
此上下文配置为世代的,并自动使用来自其他上下文的保存通知。
Apple文档中没有关于它如何使用保存通知的更多信息,但我想NSPersistentContainer
在mergeChangesFromContextDidSaveNotification:
内部viewContext
。我想知道viewContext
何时完成合并,以便我可以在视图控制器中触发一个函数来重新获取更新的数据并显示它。
但是,我不知道该怎么做。没有NSManagedObjectContext委托这样的东西。我还认为,监听NSManagedObjectContextDidSaveNotification
不是一种方法,因为它在上下文保存时被触发,而不是在viewContext
完成从保存中合并的更改时。