2012-04-11 18 views
0

Wie lautet der Standardspeicherort des NSCoding-Protokolls?Cocoa - Wo speichert NSCoding?

Auch ist es eine Möglichkeit, einen solchen Standard-Speicherort zu ändern, zu sagen, den Ordner, in dem die .app-Datei befindet?

+3

Sie diesen Film sollte lauten: https://developer.apple.com/library/mac /#documentation/Cocoa/Conceptual/Archiving/Archiving.html#//apple_ref/doc/uid/10000047i – CarlJ

Antwort

1

können Sie auch direkt schreiben encodierten Objektdaten codiert nach NSCoding in einer Datei NSKeyedArchiver mit

So:

BOOL result = [NSKeyedArchiver archiveRootObject:yourObject toFile:filename]; 

Mit filename können Sie Ihre Datei Speicherort wählen (Sie können es auf die Dokumente gesetzt werden Verzeichnis, wenn Sie auf iOS sind).

EDIT 1: Wenn Sie in NSUserDefault speichern möchten ... tun:

NSData *yourObjectAsNSData = [NSKeyedArchiver archivedDataWithRootObject:yourObject]; 
[[NSUserDefaults standardUserDefaults] setObject:yourObjectAsNSData forKey:@"aKey"] 
+0

Was passiert, wenn ich archivedDataWithRootObject: object verwende? Funktioniert der toFile: Parameter noch? Ich habe es versucht, aber es konnte nicht funktionieren. Vielen Dank! – Kevin

+0

Versuchte: NSString * path = @ "Datei"; \t [[NSUserDefaults standardUserDefaults] setObject: [NSKeyedArchiver archiveRootObject: array toFile: path] forKey: @ "savedArray"]; , die zu einem Fehler führen EXC_BAD_ACCESS + Warnung, dass ich ohne eine Besetzung einen Zeiger von Ganzzahl mache .. – Kevin

+1

falsch falsch. Sie versuchen, das BOOL "Ergebnis" in Ihren NSUserDefaults zu speichern. Das wird zum Absturz! Ich werde meine Antwort aktualisieren .. –