NSFetchedResultsController — это Core Data контроллер, который отслеживает результаты fetch-запроса и уведомляет своего делегата всякий раз, когда изменяются лежащие в его основе данные. Он специально разработан для эффективного управления обновлениями UITableView и UICollectionView.
NSManagedObjectContextsectionNameKeyPathNSSortDescriptorТы инициализируешь его с NSFetchRequest и управляемым контекстом объектов:
let controller = NSFetchedResultsController(
fetchRequest: fetchRequest,
managedObjectContext: context,
sectionNameKeyPath: nil,
cacheName: "MyCache"
)
После вызова performFetch() контроллер следит за контекстом на предмет изменений и автоматически вызывает методы делегата.
Реализовав NSFetchedResultsControllerDelegate, твой view controller получает подробные уведомления об изменениях:
controllerWillChangeContent — начать пакетные обновленияdidChange anObject — обработать изменения на уровне строкdidChange sectionInfo — обработать изменения на уровне секцийcontrollerDidChangeContent — завершить пакетные обновленияЭто позволяет таблицам и collection view плавно анимировать изменения без ручного сравнения данных.
fetchBatchSize)NSFetchedResultsController автоматически синхронизирует обновления UITableView и UICollectionView, используя методы делегата, которые предоставляют детальные уведомления об изменениях для вставок, удалений и обновлений.
Новый — ещё не проверен сообществом
Вы