Table des matières

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

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];
<?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
}