Я работаю над функцией импорта объектов, которая использует несколько потоков / NSManagedObjectContexts, используя http://www.mac -developer-network.com / columns / coredata / may2009 / в качестве руководства (обратите внимание, что я разработка для iPhone).
По какой-то причине, когда я сохраняю один из моих контекстов, другой немедленно обновляется с изменениями, даже если я закомментировал мои вызовы mergeChangesFromContextDidSaveNotification. Существуют ли причины, по которым контексты могут сливаться друг с другом без явного вызова?
Вот журнал того, что происходит:
// 1.) Main context is saved with "Peter Gabriel"
// 2.) Test context is created, begins with same contents as main context
// 3.) Main context is inserted with "Spoon"
// 4.) Test context is inserted with "Phoenix"
// Contents at this point:
CoreTest[4341:903] Artists in main context: (
"Peter Gabriel",
"Spoon"
)
CoreTest[4341:903] Artists in test context: (
"Peter Gabriel",
"Phoenix"
)
// 5.) testContext is saved
// New contents of contexts:
CoreTest[4341:903] Artists in main context: (
"Peter Gabriel",
"Phoenix",
"Spoon"
)
CoreTest[4341:903] Artists in test context: (
"Peter Gabriel",
"Phoenix"
)
Как вы можете видеть, тестовый контекст сохраняется на полпути, и главный контекст внезапно получает новые объекты из тестового контекста, хотя я не выполнил весь NSManagedObjectContextDidSaveNotification / mergeChangesFromContext combo.
Насколько я понимаю, никакие изменения никогда не будут объединены, если это не сделано явно ... кто-нибудь знает, что здесь происходит?