Я синхронизируюсь с базой данных MySQL.Можете ли вы отредактировать тот же NSManagedObject в двух разных ManagedObjectContexts и объединить их изменения?
Первоначально, я собирался пройти все мои новые/измененные объекты и установить все внешние ключи для этого объекта, а затем сделать следующий объект и т. Д. Но это много запросов на выборку.
Поэтому вместо этого я хотел пропустить все мои новые/измененные объекты и установить внешние ключи по одному. Итак, первый проход над моими объектами устанавливает fk1, мои следующие наборы fk2, и так далее ...
Прохладные запросы на выборку резко уменьшены. Теперь мне любопытно, могу ли я нарисовать эти fk-сеттеры. Они не зависят друг от друга, но они изменяют один и тот же объект, хотя они устанавливают только одно отношение, и это разные отношения. Говоря в общих словах, эти изменения могут быть «объединены» вместе без каких-либо конфликтов, но можно ли вносить изменения в один дочерний элемент managedObjectContext (childContext: save) до parentManagedObjectContext (parent: выполнитьBlock^{parent: save)) и вытащить это в другом, другом child managedObjectContext (???)? Или политика слияния будет принимать только одну версию объекта childContext и оставить остальные fks без изменений.
Я знаю, что существует: NSManagedObjectContext/refreshObject: mergeChanges:
Но это на объекте по уровню объекта. Это вызовет кучу выборки? Или это будет обновлять весь мой контекст сразу/в партиях?
По предложению компании Apple отсюда: https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdImporting.html Я создал/обновил свои ценности, прежде чем начать установки каких-либо отношений, так что все объекты уже существуют, прежде чем я пытаюсь указать любые отношения на них.
Кроме того: у нас есть несколько приложений, которые могут извлечь выгоду из параллелизма, поскольку они бросают значительный объем данных, и с помощью четырехъядерных приложений для iPad это действительно поможет с момента первоначальной синхронизации.
Спасибо. Да, я использую блок-операции, и это то, о чем я говорил, когда говорил поток. Я предполагаю, что выяснение того, как NSManagedObjectContext/refreshObject: mergeChanges: работал, действительно то, чем я был. После просмотра вашего сообщения в блоге я могу пересмотреть многопоточность части ForeignKey моей синхронизации, поскольку я пытаюсь сделать это как можно более общим, а модель данных может быть довольно сложной. Я буду расчесывать его ближе позже сегодня вечером после работы. Еще раз спасибо. – yellottyellott