controllerDidChangeContent: вызывается каждый раз, когда я создаю ManagedObject в Core Data - PullRequest
0 голосов
/ 21 октября 2011

У меня есть табличное представление, использующее NSFetchedResultsController для загрузки данных из основного хранилища данных, я реализую controllerDidChangeContent: для обновления таблицы новыми данными (загруженными из удаленного источника), однако, метод делегата controllerDidChangeContent: вызывается как только когда я создавал управляемый объект, я понимал, что его следует вызывать только при сохранении сообщения в соответствующем контексте управляемого объекта.

Есть ли параметр, который нужно установить, чтобы включить это?

Я загружаю XML со многими элементами для вставки в табличное представление, и у меня возникают сбои, потому что я создаю свои управляемые объекты на лету и добавляю информацию на лету, некоторые из которых должны отображаться в таблице. Просмотр Cell.

Поэтому по параметру controllerDidChangeContent: при каждом вызове при создании нового управляемого объекта свойства, необходимые для создания ячейки табличного представления, еще не готовы.

Любое понимание было бы замечательно.

Спасибо.

1 Ответ

2 голосов
/ 21 октября 2011

Вы не можете отключить это поведение NSFetchedResultsController.Чтобы предотвратить это, вы можете создать второй NSManagedObjectContext, выполнить там все ваши вставки, изменения и удаления и, наконец, объединить оба контекста с mergeChangesFromContextDidSaveNotification:

. Поскольку вы загружаете файл XML, вы также должны сделать это в фоновом режиме.поток для предотвращения блокировки пользовательского интерфейса для пользовательских вводов.

...