核心数据:更新子上下文

xge*_*86x 1 core-data ios ios8

如果我有一个NSManagedObjectContext和两个子节点,一个用于从Web服务(A)进行后台更新,另一个用于UI线程(B)中的操作,则问题是:如何通知NSManagedObjectContext B有关父管理对象的更改上下文一旦使用新信息更新后台上下文(A)并将其保存到父上下文中?

谢谢

Dav*_*guy 5

如果我理解正确,你可以从你的上下文B观察DidSaveNotification.像这样:

self.observer = [[NSNotificationCenter defaultCenter] addObserverForName:NSManagedObjectContextDidSaveNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) {
    NSManagedObjectContext *notMoc = [note object];
    if (![weakSelf.managedObjectContext isEqual:notMoc]) {
        [weakSelf.managedObjectContext performBlock:^{
            [weakSelf.managedObjectContext mergeChangesFromContextDidSaveNotification:note];
        }];
    }
}];
Run Code Online (Sandbox Code Playgroud)