×

En savoir plus

Boîte d'auteur


Discutez de votre projet

À propos de nous

Nous sommes un partenaire Microsoft Gold avec sa présence aux États-Unis et en Inde. Nous sommes un fournisseur de services informatiques dynamique et professionnel au service des entreprises et des startups, en les aidant à relever les défis de l'économie mondiale. Nous offrons des services dans le domaine de la consultation et de la mise en œuvre CRM, du développement d'applications, du développement d'applications mobiles, du développement Web et du développement offshore.

Données de base avec Swift

Prise en main des données de base (CRUD) avec Swift

By Subodh Dharmwan / 27 janvier 2022

3 novembre 2022
Prise en main des données de base (CRUD) avec Swift

Données de base est un cadre graphique et de persistance, qui est utilisé dans les appareils Apple avec les systèmes d'exploitation macOS et iOS. Données de base a été introduit pour la première fois dans Mac OS X 10.4 Tiger et iOS avec iPhone SDK 3.0. Il permet données être organisé selon un modèle relationnel entité-attribut, de sorte qu'il puisse être sérialisé dans des magasins XML, binaires ou SQLite.

Vous pouvez utiliser les données de base pour enregistrer votre candidature données permanentes pour une utilisation hors ligne, pour mettre en cache des données temporaires et pour ajouter une fonctionnalité d'annulation à votre application sur un seul appareil.

Core Data reflète automatiquement votre schéma dans un Kit Cloud conteneur pour synchroniser les données sur plusieurs appareils dans un seul compte iCloud.

Vous pouvez spécifier les types et les relations de vos données et développer des définitions de classe respectives. Core Data peut gérer des instances d'objets lors de l'exécution via l'éditeur de modèle de données de Core Data.

Core Data présente certains inconvénients car il ne peut stocker des données qu'une fois saisies, ce qui n'est pas comme une base de données SQL typique. 

En d'autres termes, Core Data conserve un graphe d'objets dans la mémoire, il ne peut donc fonctionner qu'avec des enregistrements dans la mémoire. Vous pouvez comprendre cela comme si vous vouliez supprimer ou mettre à jour 100 enregistrements, vous devez donc d'abord charger tous les enregistrements dans la mémoire.

Auparavant, Core Data avait quelques problèmes avec le multithreading, mais au fil des ans, les améliorations apportées au développement de Core Data l'ont rendu compatible avec le multithreading.

Annuler et rétablir des modifications individuelles ou groupées

Données de base a cette caractéristique de défaire et refaire. Le gestionnaire d'annulation traque les changements qui se produisent dans les données et peut les annuler chaque fois que nécessaire. Cela facilite le travail du développeur. 

Afficher la synchronisation

CoreData fournit une vue de table et une vue de collection qui sont utiles lorsque vous souhaitez synchroniser vos vues et vos données.

Gestion des versions et migration

CoreData vous aide à versionner votre modèle de données et à migrer les données utilisateur avec l'évolution de l'application.

Tâches de données d'arrière-plan

CoreData effectue Tâches de données de blocage de l'interface utilisateur, comme l'analyse de JSON en objets, mais en arrière-plan, qui peut en outre être mis en cache ou stocké pour réduire les allers-retours du serveur.

Aussi, lisez: Développement d'applications mobiles natives : avantages, inconvénients, alternatives et optimisation des coûts

CURD dans Swift (Créer, Mettre à jour, Récupérer, Supprimer)

Créons un nouveau projet pour comprendre le fonctionnement de Core Data et sélectionnons "Utiliser les données de base”. Vous pouvez également ajouter des Core Data à votre projet par la suite, mais c'est plus facile, car tout vous sera servi.

Créer un projet avec Use Core Data

Une fois le projet créé, vous verrez un fichier comme CoreDataTest.xcdatamodeld déjà créé, vous pouvez également ajouter le fichier à un projet existant.

Ajouter une entité

Une fois que vous avez cliqué dessus, vous verrez un outil. Cet outil permet de configurer des entités, ces entités représentent des modèles de données.

Ici, vous pouvez définir certaines des choses pour chaque entité, mais rappelez-vous que Attributs et Les relations sera le plus important.

Configurer le nom et les attributs de l'entité

Pile de données de base

À l'intérieur de l' AppDelegate, Code de la pile de données de base a une documentation claire sous forme de commentaires, il configure le conteneur persistant et enregistre les données et s'il y a des modifications, elles sont enregistrées.

Vous pouvez facilement enregistrer et récupérer le contexte de Core Data Stack car AppDelegate est le premier fichier qui s'exécute dès que l'application est lancée.

Puisque vous avez transformé nos données dans l'entité Utilisateur, vous pouvez maintenant ajouter des enregistrements et les enregistrer dans CoreData.

Aussi, lisez: Le guide pour développer et adopter une stratégie d'applications mobiles pour les entreprises

Enregistrement des enregistrements dans les données de base

La procédure d'ajout des enregistrements à Core Data comprend les tâches suivantes :

  • Se référer au conteneur persistant
  • Créer le contexte
  • Créer une entité
  • Créer un nouvel enregistrement
  • Pour chaque clé, vous devez définir des valeurs pour les enregistrements.

Étant donné que le conteneur est configuré dans le AppDélégués. Par conséquent, vous devez vous référer à ce conteneur.

let appDelegate = UIApplication.shared.delegate as! AppDelegate

Créons un contexte à partir de ce conteneur.

let context = appDelegate.persistentContainer.viewContext

Créons une entité et de nouveaux enregistrements d'utilisateurs.

let entity = NSEntityDescription.entity(forEntityName: "Users", in: context)
let newUser = NSManagedObject(entity: entity!, insertInto: context)

Enfin, ajoutez des données à votre enregistrement nouvellement créé.

newUser.setValue("Abhishek", forKey: "username")
newUser.setValue("2311", forKey: "password")
newUser.setValue("21", forKey: "age")

Bien que les méthodes utilisées pour sauvegarder le contexte existent déjà dans le AppDelegate.swift, mais une définition explicite du code peut également être effectuée pour enregistrer le contexte dans la base de données. N'oubliez pas d'envelopper ceci avec do try and catch block, car cela aidera à la gestion des exceptions. 

do { 
  try context.save()      
 } catch {      
  print("Error saving")
}

Désormais, chaque fois que vous exécuterez notre application, de nouvelles entités seront ajoutées aux enregistrements dans Core Data.

Aussi, lisez: Comment externaliser le développement d'applications mobiles en 2021: 7 choses à garder à l'esprit

Récupérer / Récupérer à partir des données de base

La procédure de récupération des données enregistrées est très simple. Il a la tâche suivante :

  • Créez et organisez la demande de type NSFetchRequest pour l'entité.
  • Utilisez le prédicat pour filtrer les données (si nécessaire).
  • Récupérer le résultat du contexte sous la forme d'un tableau de [NSManagedObject].
  • Vous devez maintenant parcourir un tableau pour obtenir la valeur de la clé spécifique.
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Users")
        //request.predicate = NSPredicate(format: "age = %@", "21")
request.returnsObjectsAsFaults = false        
do {
            let result = try context.fetch(request)
            for data in result as! [NSManagedObject] 
{
    print(data.value(forKey: "username") as! String)
  }

       } catch {

           print("Failed")
}

Mettre à jour les données dans les données de base

Pour mettre à jour les enregistrements, vous devez tout d'abord récupérer les données à l'aide du prédicat, comme indiqué ci-dessus dans le processus de récupération des données. Puis ci-dessous quelques étapes à suivre :

  • Encadrer la requête avec un prédicat pour l'entité 
  • Récupérer l'enregistrement, publier cette valeur Set New avec la clé
  • Et un contexte de dernier enregistrement similaire à la création de données.

Pour toutes ces tâches, vous pouvez utiliser le même code ci-dessus.

Supprimer des données dans les données de base

Pour supprimer l'enregistrement, vous devez d'abord trouver l'objet que vous souhaitez supprimer en RécupérerRequête, puis suivez les quelques étapes ci-dessous pour supprimer l'enregistrement :

  • Formuler la requête avec un prédicat pour l'entité 
  • Récupérez l'enregistrement que vous souhaitez supprimer
  • Et créez un appel context.delete (object) (image de référence ci-jointe)
let appDel:AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
let context = self.appDel.managedObjectContext!
context.del(data)
do {
try context.save()
}
catch {
    // Handle Error
}

Données de base : NSPredicate dans Swift

Les prédicats sont des tests simples, qui sont utilisés pour filtrer les données dont vous avez besoin dans notre tableau de données résultant. Le test sera appliqué à chaque objet de votre entité Core Data. Tout comme les commandes SQL simples, des prédicats sont utilisés.

let query = "Suraj"

let request: NSFetchRequest&lt;Person&gt; = Person.fetchRequest()request.predicate = NSPredicate(format: "name LIKE %@", query)request.predicate = NSPredicate(format: "name == %@", query)

Juste comme "COMME" dans l'exemple ci-dessus, NSPredicate a de nombreux mots-clés tels que :

CONTIENT, CORRESPOND, COMMENCE PAR et SE TERMINE PAR.

Aussi, lisez: Bases de Flutter: pourquoi utiliser Flutter pour le développement d'applications mobiles

Conclusion

Core Data convient parfaitement aux applications nécessitant la gestion d'un graphe d'objets complexe. Core Data ne peut que faire son charme car il maintient en mémoire le graphe d'objets qu'il travaille. Il y a beaucoup de choses compliquées que nous pouvons faire avec les données de base comme - ajouter des prédicats et des relations complexes de bases de données, suivre les changements de données, et plus encore. Au fur et à mesure que vous utilisez et plongez dans Core Data, les choses se compliquent, mais ce sont les principes fondamentaux de Core Data.

[sc name="Mobile App Development"] [add_newsletter] [add_related_page_diff_contents blog_cat = "mobile-development"]

Données de base est un cadre graphique et de persistance, qui est utilisé dans les appareils Apple avec les systèmes d'exploitation macOS et iOS. Données de base a été introduit pour la première fois dans Mac OS X 10.4 Tiger et iOS avec iPhone SDK 3.0. Il permet données être organisé selon un modèle relationnel entité-attribut, de sorte qu'il puisse être sérialisé dans des magasins XML, binaires ou SQLite.

Vous pouvez utiliser les données de base pour enregistrer votre candidature données permanentes pour une utilisation hors ligne, pour mettre en cache des données temporaires et pour ajouter une fonctionnalité d'annulation à votre application sur un seul appareil.

Core Data reflète automatiquement votre schéma dans un Kit Cloud conteneur pour synchroniser les données sur plusieurs appareils dans un seul compte iCloud.

Vous pouvez spécifier les types et les relations de vos données et développer des définitions de classe respectives. Core Data peut gérer des instances d'objets lors de l'exécution via l'éditeur de modèle de données de Core Data.

Core Data présente certains inconvénients car il ne peut stocker des données qu'une fois saisies, ce qui n'est pas comme une base de données SQL typique. 

En d'autres termes, Core Data conserve un graphe d'objets dans la mémoire, il ne peut donc fonctionner qu'avec des enregistrements dans la mémoire. Vous pouvez comprendre cela comme si vous vouliez supprimer ou mettre à jour 100 enregistrements, vous devez donc d'abord charger tous les enregistrements dans la mémoire.

Auparavant, Core Data avait quelques problèmes avec le multithreading, mais au fil des ans, les améliorations apportées au développement de Core Data l'ont rendu compatible avec le multithreading.

Annuler et rétablir des modifications individuelles ou groupées

Données de base a cette caractéristique de défaire et refaire. Le gestionnaire d'annulation traque les changements qui se produisent dans les données et peut les annuler chaque fois que nécessaire. Cela facilite le travail du développeur. 

Afficher la synchronisation

CoreData fournit une vue de table et une vue de collection qui sont utiles lorsque vous souhaitez synchroniser vos vues et vos données.

Gestion des versions et migration

CoreData vous aide à versionner votre modèle de données et à migrer les données utilisateur avec l'évolution de l'application.

Tâches de données d'arrière-plan

CoreData effectue Tâches de données de blocage de l'interface utilisateur, comme l'analyse de JSON en objets, mais en arrière-plan, qui peut en outre être mis en cache ou stocké pour réduire les allers-retours du serveur.

Aussi, lisez: Développement d'applications mobiles natives : avantages, inconvénients, alternatives et optimisation des coûts

CURD dans Swift (Créer, Mettre à jour, Récupérer, Supprimer)

Créons un nouveau projet pour comprendre le fonctionnement de Core Data et sélectionnons "Utiliser les données de base”. Vous pouvez également ajouter des Core Data à votre projet par la suite, mais c'est plus facile, car tout vous sera servi.

Créer un projet avec Use Core Data

Une fois le projet créé, vous verrez un fichier comme CoreDataTest.xcdatamodeld déjà créé, vous pouvez également ajouter le fichier à un projet existant.

Ajouter une entité

Une fois que vous avez cliqué dessus, vous verrez un outil. Cet outil permet de configurer des entités, ces entités représentent des modèles de données.

Ici, vous pouvez définir certaines des choses pour chaque entité, mais rappelez-vous que Attributs et Les relations sera le plus important.

Configurer le nom et les attributs de l'entité

Pile de données de base

À l'intérieur de l' AppDelegate, Code de la pile de données de base a une documentation claire sous forme de commentaires, il configure le conteneur persistant et enregistre les données et s'il y a des modifications, elles sont enregistrées.

Vous pouvez facilement enregistrer et récupérer le contexte de Core Data Stack car AppDelegate est le premier fichier qui s'exécute dès que l'application est lancée.

Puisque vous avez transformé nos données dans l'entité Utilisateur, vous pouvez maintenant ajouter des enregistrements et les enregistrer dans CoreData.

Aussi, lisez: Le guide pour développer et adopter une stratégie d'applications mobiles pour les entreprises

Enregistrement des enregistrements dans les données de base

La procédure d'ajout des enregistrements à Core Data comprend les tâches suivantes :

  • Se référer au conteneur persistant
  • Créer le contexte
  • Créer une entité
  • Créer un nouvel enregistrement
  • Pour chaque clé, vous devez définir des valeurs pour les enregistrements.

Étant donné que le conteneur est configuré dans le AppDélégués. Par conséquent, vous devez vous référer à ce conteneur.

let appDelegate = UIApplication.shared.delegate as! AppDelegate

Créons un contexte à partir de ce conteneur.

let context = appDelegate.persistentContainer.viewContext

Créons une entité et de nouveaux enregistrements d'utilisateurs.

let entity = NSEntityDescription.entity(forEntityName: "Users", in: context)
let newUser = NSManagedObject(entity: entity!, insertInto: context)

Enfin, ajoutez des données à votre enregistrement nouvellement créé.

newUser.setValue("Abhishek", forKey: "username")
newUser.setValue("2311", forKey: "password")
newUser.setValue("21", forKey: "age")

Bien que les méthodes utilisées pour sauvegarder le contexte existent déjà dans le AppDelegate.swift, mais une définition explicite du code peut également être effectuée pour enregistrer le contexte dans la base de données. N'oubliez pas d'envelopper ceci avec do try and catch block, car cela aidera à la gestion des exceptions. 

do { 
  try context.save()      
 } catch {      
  print("Error saving")
}

Désormais, chaque fois que vous exécuterez notre application, de nouvelles entités seront ajoutées aux enregistrements dans Core Data.

Aussi, lisez: Comment externaliser le développement d'applications mobiles en 2021: 7 choses à garder à l'esprit

Récupérer / Récupérer à partir des données de base

La procédure de récupération des données enregistrées est très simple. Il a la tâche suivante :

  • Créez et organisez la demande de type NSFetchRequest pour l'entité.
  • Utilisez le prédicat pour filtrer les données (si nécessaire).
  • Récupérer le résultat du contexte sous la forme d'un tableau de [NSManagedObject].
  • Vous devez maintenant parcourir un tableau pour obtenir la valeur de la clé spécifique.
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Users")
        //request.predicate = NSPredicate(format: "age = %@", "21")
request.returnsObjectsAsFaults = false        
do {
            let result = try context.fetch(request)
            for data in result as! [NSManagedObject] 
{
    print(data.value(forKey: "username") as! String)
  }

       } catch {

           print("Failed")
}

Mettre à jour les données dans les données de base

Pour mettre à jour les enregistrements, vous devez tout d'abord récupérer les données à l'aide du prédicat, comme indiqué ci-dessus dans le processus de récupération des données. Puis ci-dessous quelques étapes à suivre :

  • Encadrer la requête avec un prédicat pour l'entité 
  • Récupérer l'enregistrement, publier cette valeur Set New avec la clé
  • Et un contexte de dernier enregistrement similaire à la création de données.

Pour toutes ces tâches, vous pouvez utiliser le même code ci-dessus.

Supprimer des données dans les données de base

Pour supprimer l'enregistrement, vous devez d'abord trouver l'objet que vous souhaitez supprimer en RécupérerRequête, puis suivez les quelques étapes ci-dessous pour supprimer l'enregistrement :

  • Formuler la requête avec un prédicat pour l'entité 
  • Récupérez l'enregistrement que vous souhaitez supprimer
  • Et créez un appel context.delete (object) (image de référence ci-jointe)
let appDel:AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
let context = self.appDel.managedObjectContext!
context.del(data)
do {
try context.save()
}
catch {
    // Handle Error
}

Données de base : NSPredicate dans Swift

Les prédicats sont des tests simples, qui sont utilisés pour filtrer les données dont vous avez besoin dans notre tableau de données résultant. Le test sera appliqué à chaque objet de votre entité Core Data. Tout comme les commandes SQL simples, des prédicats sont utilisés.

let query = "Suraj"

let request: NSFetchRequest&lt;Person&gt; = Person.fetchRequest()request.predicate = NSPredicate(format: "name LIKE %@", query)request.predicate = NSPredicate(format: "name == %@", query)

Juste comme "COMME" dans l'exemple ci-dessus, NSPredicate a de nombreux mots-clés tels que :

CONTIENT, CORRESPOND, COMMENCE PAR et SE TERMINE PAR.

Aussi, lisez: Bases de Flutter: pourquoi utiliser Flutter pour le développement d'applications mobiles

Conclusion

Core Data convient parfaitement aux applications nécessitant la gestion d'un graphe d'objets complexe. Core Data ne peut que faire son charme car il maintient en mémoire le graphe d'objets qu'il travaille. Il y a beaucoup de choses compliquées que nous pouvons faire avec les données de base comme - ajouter des prédicats et des relations complexes de bases de données, suivre les changements de données, et plus encore. Au fur et à mesure que vous utilisez et plongez dans Core Data, les choses se compliquent, mais ce sont les principes fondamentaux de Core Data.

Services de développement d'applications mobiles

Voulez-vous tirer parti de la technologie mobile pour votre entreprise? Cynoteck est un fournisseur unique de services de développement d'applications mobiles. Nous fournissons des services de développement d'applications iOS et Android afin que vous puissiez atteindre votre public cible sur n'importe quel appareil.



invité
0 Commentaires
Commentaires en ligne
Voir tous les commentaires
0
J'adorerais vos pensées, veuillez commenter.x