2009-04-15 5 views
5

Eine echte Anfänger Frage. Ich habe eine NSView-Unterklasse, in der ich ein NSMutableArray mit NSValues ​​erstelle. Wenn ich das Array mit writetofile: atomatically in eine Datei schreiben möchte: Die Datei wird erstellt, aber sie enthält keine der NSValues, die das veränderbare Array enthält. Weiß jemand, wie ich dieses veränderbare Array erfolgreich in eine Datei schreiben kann?Problem beim Schreiben einer NSMutableArray Datei in Kakao

Dank

Antwort

15

NSValues ​​kann nicht in einer plist gespeichert werden (was, was writeToFile ist: atomar: tut). Werfen Sie einen Blick auf here für die Werte, die Sie speichern können. (NSNumber ist eine Art NSValue, die Sie speichern können, aber andere NSValues ​​werden fehlschlagen.)

Wenn Sie Ihr Array mit NSValues ​​speichern möchten, können Sie archiving anstelle von writeToFile: atomically: verwenden. NSArray und NSValue unterstützen beide die Archivierung. Sie konvertieren das Array einfach in ein Archiv und speichern diese Daten in einer Datei. (Es wird die NSValues ​​umfassen auch.) Der Code etwa wie folgt aussieht:

[NSKeyedArchiver archiveRootObject:myArray toFile:@"myPath"]; 

es zu laden, benutzen Sie einfach:

NSArray *myArray = [NSKeyedUnarchiver unarchiveObjectWithFile:@"myPath"]; 
+0

I verwendet NSArchiver und NSUnarchiver statt und es funktioniert perfekt. Danke –

+3

Gern geschehen. Beachten Sie, dass NSKeyed [Un] Archiver heutzutage dem NS [Un] Archiver vorgezogen wird. –

Verwandte Themen