我正在嘗試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
Doh!多麼愚蠢的我:(謝謝馬庫斯 – nduplessis 2010-03-09 01:03:53
好趕上!我撇了過去。 – TechZen 2010-03-09 02:07:31