Я работаю над приложением, которое хранит свои данные на внешнем сервере MySQL, но кэширует его локально, используя Core Data для лучшего времени отклика. По сути, я хотел бы сделать следующее:
- Извлечение данных из Core Data (хранилище данных SQLite, используя NSFetchedResultsController) и отображение их
- Получение новых элементов с сервера MySQL в фоновом режиме
- Обновление текущего табличного представления новым набором данных (как новых, так и старых элементов)
У меня все это работает, кроме последнего шага. Я не могу понять, как заставить NSFetchedResultsController обновить свой набор данных. До сих пор я пытался добавить элементы непосредственно в его NSManagedObjectContext:
[NSEntityDescription insertNewObjectForEntityForName:@"Entity"
inManagedObjectContext:[fetchedResultsController
managedObjectContext]];
Я также попробовал то, что Apple делает в своем примере с CoreDataBook, и использовал отдельный контекст «добавления» управляемого объекта и вызов mergeChangesFromContextDidSaveNotification:
. Похоже, что ни один из них не изменяет набор NSManagedObject * в настоящее время в контексте управляемого объекта выбранного контроллера результатов.
Как бы я обновил набор объектов, которыми в настоящее время управляет NSFetchedResultsController?