Vous ne vraiment pas de mettre à jour ou supprimer un formulaire le fichier plist. Il est un peu plus compliqué que cela:
- Lire le fichier plist dans la mémoire
- Alter l'en mémoire la version
- Ecrire la nouvelle version de retour sur le disque
lecture dans un plist est assez trivial. Dans votre cas, étant donné que l'élément racine est un tableau, vous feriez:
NSMutableArray * plistContents = [NSMutableArray arrayWithContentsOfFile:plistFilePath];
Ici, nous créons un tableau mutable, puisque nous savons que nous allons changer des choses en elle. Si nous voulions juste lire l'information, nous devrions utiliser NSArray
au lieu de NSMutableArray
.
Modifier la version en mémoire est aussi simple que la manipulation de conteneurs standard:
//delete the first dictionary:
[plistContents removeObjectAtIndex:0];
//Change a dictionary's full name:
NSMutableDictionary * firstDictionary = [[plistContents objectsAtIndex:0] mutableCopy];
[firstDictionary setObject:@"Mike" forKey:@"fullName"];
[plistContents replaceObjectAtIndex:0 withObject:firstDictionary];
[firstDictionary release];
Ici, nous devons faire une copie mutable (modifiable) du dictionnaire, puisque la lecture dans un plist ne crée que l'NSDictionary
immuable . Nous avons donc copié le dictionnaire, modifié la valeur que nous voulons changer, puis remplacé le dictionnaire original par notre nouveau dictionnaire modifié.
La rédaction du plist sur le disque est aussi simple:
//be sure you have write-permissions first!
[plistContents writeToFile:plistFilePath atomically:YES];
Merci pour avoir corrigé le formatage. Je lis "Code et texte préformaté" en ce moment même. –