Sie haben nicht wirklich etwas Form der plist-Datei aktualisieren oder löschen. Es ist ein bisschen mehr beteiligt als das:
- Lesen Sie die plist-Datei in dem Speicher
- Alter die In-Memory-Version
- die neue Version auf der Festplatte
Lesung in einer plist schreiben zurück ist ziemlich trivial. In Ihrem Fall, da das Wurzelelement ein Array ist, dann würden Sie tun:
NSMutableArray * plistContents = [NSMutableArray arrayWithContentsOfFile:plistFilePath];
Hier haben wir einen änderbaren Array zu erstellen, da wir wissen, wir gehen Sachen drin zu ändern. Wenn wir nur die Informationen lesen wollten, sollten wir NSArray
anstelle von NSMutableArray
verwenden.
Ändern der In-Memory-Version als Manipulation Standardcontainer ist so einfach:
//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];
Hier müssen wir eine veränderbare (änderbar) Kopie des Wörterbuchs machen, denn nur in einer plist Lesen erzeugt die unveränderliche NSDictionary
. Wir kopieren also das Wörterbuch, ändern den Wert, den wir ändern wollen, und ersetzen das ursprüngliche Wörterbuch durch unser neues modifiziertes Wörterbuch.
Schreiben der plist auf die Festplatte ist auch einfach:
//be sure you have write-permissions first!
[plistContents writeToFile:plistFilePath atomically:YES];
Danke für die Korrektur meiner Formatierung. Ich lese "Code und vorformatierter Text", während wir sprechen. –