2014-08-29 1 views
0

В базовых данных с NSManagedObjectContext: если у меня есть родительский и дочерний контексты, когда я сохраняю дочерний контекст, мне также нужно сохранить родительский контекст?NSManagedObject - Нужно ли сохранять контексты родителя и ребенка?

т.е.

NSManagedObjectContext *childContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType]; 
childContext.parentContext = [self defaultPrivateQueueContext]; 
[childContext performBlock:^{ 
    //do stuff async 
    [childContext save:&error]; 
    [self.defaultPrivateQueueContext performBlock:^{ 
    [self.defaultPrivateQueueContext save:&error]; 
    }]; 
}]; 

ответ

1

Сохранение ребенка будет обновлять состояние объектов в контексте ребенка и раздвинуть изменения, совершенные сохранения родителю. Родитель не будет сохранять эти изменения в постоянном хранилище без сохранения в родительском контексте (при условии, что родительский корневой контекст).

Вы можете увидеть иллюстрацию этого here.