Что я должен делать в processContentChanges:?
Это processContentChanges: метод моего приложения, который вызывается NSPersistentStoreDidImportUbiquitousContentChangesNotification
:
- (void)processContentChanges:(NSNotification *)notification {
[self.managedObjectContext performBlock:^{
// Merge incoming data updates in the managed object context
[self.managedObjectContext mergeChangesFromContextDidSaveNotification:notification];
// Post notification to trigger UI updates
#warning What do I actually do here?
}];
}
я использую NSFetchedResultsController
Повсюду в моем приложении, чтобы пользовательский интерфейс обновлялся автоматически при получении изменений от другого устройства через iCloud. Это все, кажется, работает, но в комментарии говорится // Post notification to trigger UI updates
был там в методе шаблона уже. Должен ли я на самом деле что-то делать здесь, или я могу оставить все как есть?
1 ответ
Ну, хотя у меня не было подтверждения этого, я не думаю, что есть что-то еще, что нужно сделать в этом методе, если соблюдены следующие критерии:
- Вы реализуете
NSPersistentStoreDidImportUbiquitousContentChangesNotification
правильно в соответствии с шаблоном, чтобы новое содержимое сливалось с контекстом управляемого объекта - Ваш контент создан с использованием
NSFetchedResultsController
объекты - Ваш viewControllers соответствует
NSFetchedResultsControllerDelegate
протокол и реализуетcontrollerWillChangeContent:
,controllerDidChangeContent:
а такжеcontroller:didChangeObject:atIndexPath:forChangeType:newIndexPath
- В этих методах обновите свои представления соответственно, чтобы отобразить новый контент, удалить удаленный контент и обновить измененный контент.
Если у вас есть какие-либо объекты, которые используют CoreData без NSFetchedResultsController
тогда вам может потребоваться обновить их, вручную повторно выбирая данные, когда NSPersistentStoreDidImportUbiquitousContentChangesNotification
опубликовано CoreData.