當我們第一次將核心數據添加到我們的應用程序時,我們遵循的教程在我們的應用程序委託中創建了一個NSManagedObjectContext
。它建議,如果我們在其他線程中使用的核心數據,我們應該添加一個觀察者來更新我們的主要背景下保存線程的上下文時,像這樣:我是否需要觀察每個創建的NSManagedObjectContext的NSManagedObjectContextDidSaveNotification?
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(mergeChanges:)
name:NSManagedObjectContextDidSaveNotification
object:self.managedObjectContext];
這applicationDidFinishLoadingWithOptions:
發生一次。但是,NSManagedObjectContext
的文檔說:
幾個系統框架在內部使用核心數據。如果您註冊接收來自所有上下文的這些通知(將nil作爲對象參數傳遞給addObserver ...方法),則可能會收到難以處理的意外通知。
這表明對象參數應該是保存的上下文(在我的情況下是背景上下文)而不是主要上下文。是這樣嗎?我是否需要觀察我創建的每個NSManagedObjectContext的NSManagedObjectContextDidSaveNotification?