0
私はコアデータ用にいくつかのマルチスレッド同期を試みています。しかし、私は、メインスレッドで保存しなければならない場合、中:コアデータ - メインスレッドにmanagedObjectContextを保存しないでください。
- (void)importerDidSave:(NSNotification *)saveNotification {
NSLog(@"MERGE in destination controller");
if ([NSThread isMainThread]) {
AppDelegate *delegate = (AppDelegate *)[[NSApplication sharedApplication] delegate];
[[delegate managedObjectContext] mergeChangesFromContextDidSaveNotification:saveNotification];
} else {
[self performSelectorOnMainThread:@selector(importerDidSave:) withObject:saveNotification waitUntilDone:NO];
}
}
私はメインスレッド(その場合には、私はスピンを持っている)のいつかのフリーズを持っています。すべてのインタフェースビューはAppDelegate mocに接続するアレイコントローラに接続します。 ので、設計に関するいくつかの質問は:
- 私は、メインインターフェイス上の凍結を避け、メインスレッド外で管理オブジェクトコンテキストをマージすることができますか?
- は、私がすべての配列を別のmanagedobjectcontextに接続する場合、避けることができますか?どのように私は問題を避けることができます、作成されたコンテキストは、このオブジェクトを作成した後にマージされる内部の変更を持っていない?
任意のヘルプは高く評価されます ...
これは同じコードです。 – user170317