Dans le cours : Développement iOS : La persistance des données
Synchroniser les données
Dans le cours : Développement iOS : La persistance des données
Synchroniser les données
Lorsque vous mettez en place un moyen de persister les données, vous devez vous assurer que tous les écrans de votre application restent à jour, et les données affichées doivent être synchronisées avec la couche de persistance. Nous allons voir dans cette vidéo comment synchroniser les données avec l'interface utilisateur et la couche de persistance. Ici, nous allons aborder de manière de synchronisation des données. La première est l'utilisation NSFetchedResultsController qui est une classe qui est assez pratique pour maintenir à jour les collections de données. Par exemple, les composants tels que Table View, Collection View sont bien adaptés pour utiliser ce type NSFetchedResultsController. Ensuite nous allons voir comment nous abonner à la notification NSManagedObjectContextDidSave du framework Core Data Nous allons commencer par le type NSFetchedResultsController. Ma classe ReactionViewController affiche dans son interface utilisateur un tableau contenant une liste de reactions. Elle a une référence à une instance UITableView. Pour lancer le processus de synchronisation, il faut adapter le protocole NSFetchedResultsControllerDelegate. Ensuite, il faut définir la propriété Delegate de l'instance qui contiendra la collection d'éléments sur self. Dans notre cas, il s'agit de l'instance reactions. Alors, dans ma méthode loadReactions, je vais dire self.reactions.delegate = self. Ceci parce que je vais laisser mon contrôleur implémenter les méthodes déléguées, chose que je fais juste en bas. Ici sont définies trois méthodes du delegate, NSFetchedResultsController Delegate. La première est controllerWillChangeContent. Lorsque cette méthode est invoquée, je vais invoquer la méthode beginUpdate de mon instance tableView. Lorsque la méthode controllerDidChangeContent est invoquée, je fais appel à la méthode endUpdate de mon instance tableView. Ces deux méthodes feront en sorte que les ajustements apportés sur l'interface utilisateur soient animés en douceur à mesure que le contenu change. Eh bien, ce changement est dû à ce qui est implémenté dans la troisième méthode. Celle-là. Ici, j'utilise l'instruction switch pour déterminer le type de changement qui a été effectué. En fonction du type de changement, je vais effectuer la mise à jour de mon interface utilisateur. Nous avons, les types de changements, insert, delete, move et update. Maintenant, nous allons voir comment adapter la synchronisation en s'abonnant à la notification NSManagedObjectContextDidSave. Lorsqu'il y a une modification de la base de données, une notification NSManagedObjectContextDidSave sera déclenchée. Ainsi, les classes qui s'y seront abonnées pourront mettre à jour leur interface utilisateur. Dans ma classe ReactionDetailsViewController, j'ai écrit du code pour m'abonner à la notification NSManagedObjectContextDidSave Je l'ai défini dans la méthode viewDidLoad et lui ait défini un sélecteur handleContextDidSave qui va intercepter cette notification. Lorsque la notification est interceptée, je vais récupérer les informations stockées dans le dictionnaire userInfo, s'il n'est pas nul, pour la clé NSUpdateObjectsKey, que je « caste » en un ensemble de données de type Reaction. Puisque dans mon cas, il ne s'agit que de la modification d'un seul élément, je vais récupérer le premier élément de la collection, que je vais affecter à mon instance reaction. Et ensuite, je fais appel à la méthode updateUI qui va mettre à jour mon interface utilisateur en affectant les nouvelles variables aux variables affichées sur l'interface utilisateur. Nous venons de voir comment synchroniser les données entre l'interface utilisateur et la couche de persistance en utilisant soit la notification de NSObjectContextDidSave du framework Core Data, ou alors, en utilisant la classe NSFetchedResultsController.
Entraînez-vous tout en suivant la formation avec les fichiers d’exercice.
Téléchargez les fichiers utilisés par l’instructeur pour enseigner le cours. Suivez attentivement et apprenez en regardant, en écoutant et en vous entraînant.
Table des matières
-
-
-
-
-
-
(Verrouillé)
Comprendre la pile de données3 m 11 s
-
(Verrouillé)
Configurer la pile du Core Data4 m 43 s
-
(Verrouillé)
Implémenter les dépendances d'injection3 m 46 s
-
(Verrouillé)
Passer le Core Data entre différents ViewControllers2 m 25 s
-
(Verrouillé)
Créer les modèles de données4 m 28 s
-
(Verrouillé)
Sauvegarder les données2 m 15 s
-
(Verrouillé)
Accéder aux données et les ordonner5 m 37 s
-
(Verrouillé)
Supprimer les données1 m 54 s
-
Synchroniser les données4 m 37 s
-
(Verrouillé)
-