В методе делегата все-таки лучше обновлять те данные, которые изменились, а не всю collectionView. Например, так: collectionView.reloadRows(at: [indexPath!], with: .automatic)
Еще можно задействовать методы делегата controllerWillChangeContent и controllerDidChangeContent, в которых выполнить beginUpdates и endUpdates.
Также можно, в зависимости от NSFetchedResultsChangeType, выполнить insertRows, deleteRows или reloadRows.
Спасибо за комментарий. Да, верно. Но в случае когда получаем большой объем данных, как в примере, можно и просто reloadData вызвать.
Методы делегата — несомненно. Можно отлавливать изменения над конкретным объектом и производить какие-нибудь манипуляции!
Стартуем с Core Data! Сложное простыми словами [Часть 2]