2009-06-18 6 views
1

Hat jemand Erfahrung mit dem Speichern von App-Einstellungen (in der App, nicht in der App "Einstellungen"), die mit der Kamera aufgenommene Bilder enthalten?Speichern eines Bildes in den Benutzereinstellungen

Die Prefs enthalten NSStrings, UIImage, BOOLs usw. Die UIImage ist ein Bild mit der Kamera aufgenommen.

Könnte ich speichern diese alle in einem NSMutableArray und dann nur etwas tun, wie folgt aus:

[array writeToFile:[self dataFilePath] atomically:YES]; 

Kann ein Array solche Vielzahl von Objekten halten? (und BOOL ist nicht unbedingt ein Objekt, das ich schätze)

Antwort

3

können Sie dieses Array speichern Sie die NSKeyedArchiver verwenden, die Eigenschaftsliste zu vermeiden:

[NSKeyedArchiver archiveRootObject:array toFile:[self dataFilePath]]; 
+0

Dank. Ich werde beide Vorschläge versuchen, um zu sehen, welche Werke. Wie würde ich mit der NSKeyedArchiver-Technik die Werte wieder laden? Könnte ich/array ein Array zuweisen und tun: [array unarchiveObjectWithFile: [self dataFilePath]]; ? – cannyboy

+0

NSArray * array = [NSKeyedUnarchiver unarchiveObjectWithFile: Pfad zu Datei]; –

+0

Ich benutzte schließlich die 'UIImage> NSData' Technik. Wäre es von Vorteil, die NSKeyedArchiver-Technik zu verwenden? Die Konvertierung von UIImage in NSData und umgekehrt dauert etwas länger. – cannyboy

1

Sie können property lists nur mit writeToFile:atomically: schreiben. Das bedeutet, dass das Array (und mögliche Untercontainer) nur Objekte vom Typ NSArray, NSDictionary, NSString, NSData, NSDate und NSNumber enthalten können. Sie müssen Ihr Bild in NSData konvertieren, um es in einer Eigenschaftsliste zu verwenden.