NSManagedObjectContext - это конкретное представление вашей модели данных.Каждый контекст поддерживает свое собственное состояние (например, контекст), поэтому изменения в одном контексте не будут напрямую влиять на другие контексты.Когда вы работаете с несколькими контекстами, вы обязаны поддерживать их согласованность путем объединения изменений, когда контекст сохраняет свои изменения в хранилище.
Ваш вопрос касается этого процесса и может также включать конфликты слияния.Всякий раз, когда вы сохраняете контекст, его изменения фиксируются в хранилище, и для разрешения конфликтов используется политика слияния.
Когда вы сохраняете контекст, он будет публиковать различные уведомления о прогрессе.В вашем случае, если [contextA save:&error]
завершится успешно, контекст отправит уведомление NSManagedObjectContextDidSaveNotification
.Когда у вас есть несколько контекстов, вы обычно наблюдаете это уведомление и звоните:
[contextB mergeChangesFromContextDidSaveNotification:notification];
Это объединит изменения, сохраненные в contextA
, в contextB
.
РЕДАКТИРОВАТЬ: удалил потокбезопасный комментарий.NSManagedObjectContext
не является поточно-ориентированным.