Я пытаюсь реализовать многопоточную реализацию Core Data на iPhone SDK 3.1.3.У меня есть два разных объекта NSManagedObjectContext для каждого потока, и я регистрируюсь для уведомлений об изменениях в одном потоке, как показано ниже:
- (void)setup {
DLog(@"Registering for NSManagedObjectContext notifications");
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(test:) name:@"NSManagedObjectContextWillSaveNotification" object:nil];
[nc addObserver:self selector:@selector(test:) name:@"NSManagedObjectContextDidSaveNotification" object:nil];
[nc addObserver:self selector:@selector(test:) name:@"NSManagedObjectContextObjectsDidChangeNotification" object:nil];
}
- (void)test:(NSNotification *)notif {
DLog(@"Test callback");
}
В другом потоке я сохраняю второй контекст следующим образом:
NSError *error = nil;
[managedObjectContext save:&error];
if (error) {
ALog(@"Error occured while trying to save a NewsStory object");
}
else {
DLog(@"Saving context");
}
Однако метод обратного вызова уведомлений никогда не выполняется, что заставляет меня верить, что эти уведомления никогда не публикуются?
Мой журнал показывает следующее:
Registering for NSManagedObjectContext notifications
Saving context
...
Saving context