【发布时间】:2010-03-08 13:14:10
【问题描述】:
我正在 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
【问题讨论】:
标签: iphone cocoa-touch core-data