2009-08-20 8 views
1

Was ist ein guter Weg, um die Daten aus einer Klasse in XML zu archivieren und in eine Datei zu schreiben? (in Objective-C für iPhone SDK)Schreiben von Daten als XML in einer App

Ich sehe viel über die Verwendung von NSXMLParser zum Parsen der Daten, aber nicht viel zur Erstellung der Dateien.

Antwort

2

Da Sie für einfachste Weg gefragt ... wenn Sie die Daten in einem Array oder einem Wörterbuch bekommen Sie können es als XML plist mit einer Zeile Code schreiben:

NSMutableDictionary* data = [NSMutableDictionary 
          dictionaryWithContentsOfFile:saveDataPath]; 

[data writeToFile:saveDataPath atomically:YES]; 

Wörterbücher und Arrays können andere Wörterbücher und Arrays als Werte enthalten, die dabei helfen, verschachtelte Hierarchien zu modellieren.

Da Sie nur in den Ordner Dokumente zur Laufzeit schreiben können Sie so etwas wie dies wollen den Weg schaffen: von Objekten

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString* saveDataPath = [documentsDirectory 
          stringByAppendingPathComponent:SAVEFILENAME]; 

Für benutzerdefinierte Rangier dann werden Sie in NSCoding und Archiven suchen wollen . Die meisten XML-Bibliotheken da draußen können nicht mit der Generierung umgehen, daher müssen Sie Ihre eigenen erstellen.

Eine andere Möglichkeit ist, den CoreData-Weg zu gehen und sich um das Lesen und Schreiben für Sie zu kümmern. Derzeit unterstützt es jedoch persistente SQLite-, binäre und speicherinterne Speicher, also noch kein XML.

Verwandte Themen