当我们第一次将核心数据添加到我们的应用程序时,我们遵循的教程在我们的应用程序委托中创建了一个NSManagedObjectContext
。它建议,如果我们在其他线程中使用的核心数据,我们应该添加一个观察者来更新我们的主要背景下保存线程的上下文时,像这样:我是否需要观察每个创建的NSManagedObjectContext的NSManagedObjectContextDidSaveNotification?
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(mergeChanges:)
name:NSManagedObjectContextDidSaveNotification
object:self.managedObjectContext];
这applicationDidFinishLoadingWithOptions:
发生一次。但是,NSManagedObjectContext
的文档说:
几个系统框架在内部使用核心数据。如果您注册接收来自所有上下文的这些通知(将nil作为对象参数传递给addObserver ...方法),则可能会收到难以处理的意外通知。
这表明对象参数应该是保存的上下文(在我的情况下是背景上下文)而不是主要上下文。是这样吗?我是否需要观察我创建的每个NSManagedObjectContext的NSManagedObjectContextDidSaveNotification?