Objekt-Serialisierung im XML-format unter Verwendung von Obj-C / iPhone SDK

Habe ich eine iPhone-App, verwendet eine relativ kleine Menge von Daten.
Ich möchte zum speichern der Daten im XML-format und können zum laden in den Arbeitsspeicher, um Objective-C-Objekte. Ich würde gerne mit dem iPhone SDK Einrichtungen wie NSPropertyListSerialization oder writeToFile:atomar: Klassen und Methoden.

Den NSPropertyListSerialization Dokumentation sagt, dass

Den NSPropertyListSerialization Klasse
stellt Methoden zum konvertieren von Eigentum
Liste von Objekten in und aus mehreren
serialisierte Formate. Eigenschaft Liste
Objekte gehören NSData, NSString,
NSArray, NSDictionary, NSDate, und
NSNumber-Objekte.

Angenommen, ich möchte sparen ein paar Person Objekte (eine Familie), deren Attribute sind alle Eigenschaft-Liste-Arten. Die einzige-Art und Weise habe ich es geschafft, speichern Sie diese im XML-Format ist dabei:

//container for person objects
NSMutableArray *family = [[NSMutableArray alloc] init];

for (int i = 0; i < numberOfPeople; i++) {      
 //simulate person's attributes
 NSArray *keys = [[NSArray alloc] initWithObjects:
       @"id", 
       @"name",
       @"age",
       Nil];

 NSArray *values = [[NSArray alloc] initWithObjects:
         [NSNumber numberWithInt:i],
         @"Edward", 
         [NSNumber numberWithInt:10],
         Nil];

 //create a Person (a dictionary)
 NSDictionary *person = [[NSDictionary alloc] initWithObjects:values forKeys:keys];
 [family addObject:person];
 [person release];  
}

//save the "person" object to the property list
[family writeToFile:@"<path>/family.plist" atomically:YES];
[family release];

dem erzeugen würde, die Familie.plist Datei.

Beachten Sie allerdings, dass mein Person - Objekt ist eigentlich ein NSDictionary-Objekt (die ich glaube nicht, dass Unterklassen eine gute Idee wäre) mit Attributen als Schlüssel.
Gibt es eine Möglichkeit zu schaffen, eine Objective-C-Klasse wie folgt aus:

@interface Person : NSObject {
 NSString *_id; 
 NSString *_name;
 NSNumber *_age;
}
@end

und zu serialisieren, um eine plist-oder XML-Datei? (Ich brauche das Objekt zu speichern in text-format (nicht Binär) aus, so dass ich Bearbeiten kann, diese Daten in einem text-editor und ermöglichen, meine Anwendung zu laden diese zur Laufzeit, die Umstellung auf Objective-C Objekte normalerweise).

Vielen Dank im Voraus,
Eduardo

InformationsquelleAutor Eduardo Coelho | 2010-07-20

Schreibe einen Kommentar