Обеспечение того, чтобы расширение «Сегодня» обновляло информацию из Core Data

У меня есть приложение и сегодняшнее расширение, которые совместно используют постоянное хранилище Core Data с использованием идентификатора группы безопасности.

Основное приложение обновляет хранилище Core Data, а расширение считывает данные только из хранилища.

Я использую NSFetchedResultsController как в приложении, так и в расширении для извлечения объектов.

Это в основном работает, за исключением того, что когда основное приложение добавляет новые объекты в хранилище, они не сразу видны расширению. Точно так же расширение может видеть объекты после того, как они были удалены основным приложением.

Завершение работы приложения (пролистывание переключателя задач вверх) приводит к тому, что расширение немедленно видит измененные данные.

Как я могу убедиться, что расширение всегда видит обновление?


person Paulw11    schedule 15.01.2015    source источник


Ответы (1)


Я обнаружил, что решение состоит в том, чтобы удалить кэшированные данные из NSFetchedResultsController в сегодняшнем расширении. Я добавил следующую строку в свой код, который устанавливал NSFetchedResultsController

 [NSFetchedResultsController deleteCacheWithName:self.fetchedResultsController.cacheName];
person Paulw11    schedule 15.01.2015