Outils pour utilisateurs

Outils du site


objc:fichier_de_proprietes

Lire et écrire un fichier de propriétés

La méthode ci-dessous permet d'écrire et de lire un fichier de propriétés. Il existe peut-être d'autres méthodes, mais je ne les ai pas encore découvertes. Cette méthode peut évidemment être utilisée pour stocker d'autres données que des propriétés.

Principe fonctionnel

  • Les données sont stockées sous une forme clé / valeur dans un fichier XML
    • Le fichier est lisible par un humain aussi bien que par le programme
    • Le fichier peut être facilement modifié par un humain ou par un programme
  • Les données peuvent être facilement organisées : elles sont stockées dans des dictionnaires qui sont eux-même stockés dans un tableau.
  • Une fois les propriétés répertoriées, elles sont facilement écrites dans un fichier, qui peut tout aussi facilement être lu lorsque c'est nécessaire.

Créer le tableau des propriétés

// l'objet proprietes stockera toutes les valeurs de propriétés
NSMutableArray *proprietes = [[NSMutableArray alloc] init];
// L'objet propriete est utilisé pour stocker un groupe logique de propriété.
NSMutableDictionary *propriete;
 
// l'objet propriete est initialisé pour le groupe 1
propriete = [NSMutableDictionary dictionary];
[propriete setObject:@"valeurProp1Groupe1" forKey:@"prop1Groupe1"];
[propriete setObject:[NSNumber numberWithInt:200] forKey:@"prop2Groupe1"];
 
// propriete est ajouté au tableau proprietes
[proprietes addObject:propriete];
 
// l'objet propriete est à nouveau initialisé pour un nouveau groupe
propriete = [NSMutableDictionary dictionary];
[propriete setObject:@"valeurProp1Groupe2" forKey:@"prop1Groupe2"];
[propriete setObject:[NSNumber numberWithInt:200] forKey:@"prop2Groupe2"];
 
// propriete est ajouté au tableau proprietes
[proprietes addObject:propriete];
 

Écrire les propriétés dans un fichier

[proprietes writeToFile:@"/tmp/proprietes.plist" atomically:YES];
  • stocke le fichier sous la forme suivante
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
    <dict>
        <key>prop1Groupe1</key>
        <string>valeurProp1Groupe1</string>
        <key>prop2Groupe1</key>
        <integer>200</integer>
    </dict>
</array>
</plist>

Lire le fichier des propriétés

NSArray *proprietes = [NSArray arrayWithContentsOfFile:@"/tmp/proprietes.plist"];
for (NSDictionary *d in proprietes)
{
    // Les propriétés sont par exemple exploitables grâce à objectForKey:(NSString *)key
}
objc/fichier_de_proprietes.txt · Dernière modification: 2016/10/17 13:56 (modification externe)