缺少核心数据通知

ndu*_*sis 2 iphone cocoa-touch 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");
}
Run Code Online (Sandbox Code Playgroud)

在我的另一个线程中,我保存第二个上下文,如下所示:

NSError *error = nil;
[managedObjectContext save:&error];

if (error) {
    ALog(@"Error occured while trying to save a NewsStory object");
}
else {
    DLog(@"Saving context");
}
Run Code Online (Sandbox Code Playgroud)

通知回调方法永远不会执行,这让我相信这些通知永远不会发布?

我的日志显示以下内容:

Registering for NSManagedObjectContext notifications
Saving context
...
Saving context
Run Code Online (Sandbox Code Playgroud)

Mar*_*rra 14

切换@"NSManagedObjectContextWillSaveNotification"NSManagedObjectContextWillSaveNotification.那些是常数.这些事件最有可能被发布,但您没有听到正确的名称.