アプリにコアデータを最初に追加したとき、私たちが従ったチュートリアルでは、アプリケーションデリゲートにNSManagedObjectContext
という名前が作成されました。これはapplicationDidFinishLoadingWithOptions:
に一度起こる私が作成するすべてのNSManagedObjectContextからNSManagedObjectContextDidSaveNotificationを監視する必要がありますか?
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(mergeChanges:)
name:NSManagedObjectContextDidSaveNotification
object:self.managedObjectContext];
:それは私たちが他のスレッドにコアデータを使用した場合、スレッドのコンテキストを保存したとき、私たちはそうのように、私たちの主なコンテキストを更新するためにオブザーバーを追加する必要があることをお勧めします。しかし、NSManagedObjectContext
のドキュメントには、次のように書かれています。
いくつかのシステムフレームワークでは、内部的にCore Dataを使用しています。これらの通知をすべてのコンテキストから受け取るように登録した場合(オブジェクト・パラメータとしてnilをaddObserver ...メソッドに渡す)、処理が困難な予期しない通知を受け取ることがあります。
これは、主なコンテキストではなく、オブジェクトのパラメータが(私の場合は背景のコンテキストで)保存されているコンテキストでなければならないことを示唆しています。それは事実ですか?作成したすべてのNSManagedObjectContextからNSManagedObjectContextDidSaveNotificationを監視する必要がありますか?