TIP: Enregistrer un fichier Plist (iPhone/iPad)

Les fichiers Plist sont des conteneurs pour les dictionnaires de données utilisés dans l’iPhone ou l’iPad.
En enregistrant des fichiers Plist sur l’appareil de l’utilisateur, vous pouvez ainsi conserver des données comme une liste de favoris, des préférences utilisateur ou encore des contenus saisis (brouillons, notes).

Le code suivant illustre la création d’un dictionnaire et son enregistrement.

Tout d’abord, il faut créer un dictionnaire qui contiendra les données à enregistrer.

NSMutableDictionary *tempDict = [[NSMutableDictionary alloc] init];


Ajoutez quelques paires clé/valeur.
[tempDict setValue:[NSNumber numberWithInt:123] forKey:@"id"];
[tempDict setValue:@"Maths" forKey:@"title"];
[tempDict setValue:[NSNumber numberWithFloat:12.5] forKey:@"note"];


Pour conserver le fichier entre les différentes sessions d’utilisation de l’application, celui-ci doit être enregistré dans le dossier Documents de l’iPhone. Pour récupérer le chemin vers le fichier UserList.plist (à créer ou écraser) utilisez le code suivant :
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"UserList.plist"];


Il ne reste plus qu’à écrire le fichier.
(Ici avec le résultat de l’écriture en console)
NSLog(@"Write to %@.\nResult : %i", path, [tempDict writeToFile:path atomically: YES]);


L’argument atomically spécifie si une copie de sauvegarde du fichier existant doit être réalisée avant l’écriture du nouveau fichier.

Pour accéder au contenu du fichier écrit, voir le TIP: Lire un fichier Plist (iPhone/iPad).

Auteur: Benoit DELDICQUE

Actuellement en poste sur Strasbourg, je suis en charge de la conception et la réalisation d'applications iOS pour iPhone, iPad et iPod touch. En plus de mon activité autour du monde mobile, je suis co-gérant d'une jeune société, Caelys, qui offre aux professionnels une plateforme de vente unique.

Articles similaires

  • Facebook sur iPad est disponible Lire →
  • Utiliser une TV avec iPhone & iPad HDMI Adapter et iOS SDK Lire →
  • TIP: Générer un fichier de langue Localizable.strings Lire →
  • Facebook sur iPhone et iPad offre la Timeline Lire →

6 commentaires

  1. Bonjour

    est-il possible d’écrire des données dans un fichier plist et quel est le code pour écrire dans un fichier plist ?

  2. Bonjour et merci pour cet exemple.
    Cependant comment faire pour enregistrer plusieurs données à la suite ? Car ici à chaque nouvelle demande d’enregistrement, les anciennes valeurs sont remplacées par les nouvelles. Je voudrais moi qu’elles se mettent à la suite !

    Merci d’avance pour la réponse !

  3. Bonjour Shon,
    Il suffit de créer un tableau qui sera stocké pour une clé et d’ajouter au fur et a mesure des valeurs dans le tableau.

    NSMutableArray *tb = [...]
    [tempDict setValue:tb forKey:@"mon_tableau"];

  4. Bonjour,
    Je voudrais savoir le code pour supprimer tout le contenu de mon fichier plist.
    Pour linstant j’arrive que à vider dans la memoir mais le fichier plist reste inchanger.
    Merci d’avance.

  5. Bonjour,
    Pour écrire un PLIST vide, il suffit d’écrire un dictionnaire vide.
    Initialisez le dictionnaire et écrivez-le.
    NSMutableDictionary *tempDict = [[NSMutableDictionary alloc] init];
    [tempDict writeToFile:path atomically: YES]

    Cordialement,
    Benoit

Laisser un commentaire

Les champs obligatoires sont identifiés par *

*