実際には、それは可能であり、あなたが探している方法は次のとおりです。
-(void)mergeChangesFromContextDidSaveNotification:(NSNotification *)notification;
NSManagedObjectContext
スレッドごとに異なるものを作成する必要があります。必要なNSManagedObjectContext
のは、NSManagedObjectContextDidSaveNotification
キーをに入れNSNotification
てデフォルトのセンターに登録することだけです。その呼び出しmergeChangesFromContextDidSaveNotification
でメインスレッドを実行すると、メソッドを呼び出すたびに変更がマージされますsave:&error
。
注:私の意見では、オブジェクトをフェッチしている間、別のコンテキストに属している可能性があり(フェッチ後はゼロになります)、別の方法でフェッチする必要がある場合は、少しデメリットがあります。
NSManagedObjectID *objectID = [YourObject objectID];
YourObject *copy =(YourObject*) [managedObjectContext objectWithID:objectID];
それが役に立てば幸い。これが私が言っていることをよりよく理解するためのリンクです。