내가이멀티 스레드 코어 데이터는 - NSManagedObject는 제목으로
managedContext = [[NSManagedObjectContext alloc] init];
[managedContext setUndoManager:nil];
[managedContext setPersistentStoreCoordinator: [[DataManager sharedManager] persistentStoreCoordinator]];
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self
selector:@selector(mergeChanges:)
name:NSManagedObjectContextDidSaveNotification
object:managedContext];
NSMutableArray *returnSource = [[self parseDocument:doc] retain];
[managedContext save:&error];
if (error) {
NSLog(@"saving error in datafeed");
}
[managedContext reset];
[self performSelectorOnMainThread:@selector(parseCompleteWithSource:) withObject:returnSource waitUntilDone:YES];
을하고있어 내 백그라운드 스레드에서 다른 배경 스레드에서 객체 (XML 구문 분석)
로 채워집니다 핵심 데이터 응용 프로그램 작업 메신저를 제안 무효화
병합 방법은 다음과 같습니다
NSManagedObjectContext *mainContext = [[DataManager sharedManager] managedObjectContext];
// Merge changes into the main context on the main thread
[mainContext performSelectorOnMainThread:@selector(mergeChangesFromContextDidSaveNotification:)
withObject:notification
waitUntilDone:YES];
[[NSNotificationCenter defaultCenter] removeObserver:self];
나는 병합이 성공하지만 난이 jQuery과에 표시 원하는대로 항상 나에게 t을 알려줍니다 생각 내 객체가 무효화 모자가 예상되는 때문에 그게 전부 내가를 업데이트 할 완료 내가 뭘 XML을 구문 분석 백그라운드에서 현재 데이터베이스에있는 항목을 표시 할 일은 원하는 경우
[managedContext reset];
새로운/업데이트 된 개체가있는 UITableView. 어떻게해야합니까, 나는 "컨텍스트"를 어떻게 든 다른 개체를 "업데이트"할 수 있습니까? 그렇지 않으면 병합이 제대로 작동하지 않습니까?
Main ObjectContext에서 특정 항목을 정의해야합니까? 나는 행운없이 다른 mergepolicies를 시도했다.
희망을 보내 주시면 감사하겠습니다.
https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/Concurrency.html –