У меня есть managedObjectContext
для основного приложения, которое имеет границы NSArrayController
и NSTableView
, отображающие содержимое NSArrayController
.
Периодически я использую фоновый поток со вторым managedObjectContext
который идет и получает последние данные с веб-сервера.Как только данные возвращены и проанализированы в фоновом потоке, они объединяются с основным контекстом после mergeChangesFromContextDidSaveNotification
.
Сразу после срабатывания уведомления (и я предполагаю, что во время слияния) в таблице показаны дублированные записи каждого элемента (что было бы точно, если бы два контекста отображали оба своих данных одновременно).Через пару секунд таблица корректно отображает данные, и дубликаты удаляются.
Я предполагаю, что NSArrayController
наблюдает за контекстом, когда он проходит слияние, и позволяет таблице показывать пред- ифайлы после слияния.
Есть ли приемлемый способ остановить обновление контроллера массива до завершения слияния?
Я мог бы сделать это вне привязок IB и принудительно обновить контроллер массива, но я вполне уверен, что я должен делать что-то немного неправильное либо в моих привязках, либо в процессе слияния.
Любая помощь или предложения высоко ценится.