Wie kann ich die speichern und abrufen eines NSMutableDictionary zu und von NSUserDefaults?
Ich habe versucht, dies zu tun, speichern Sie ein leeres dictionary in NSUserDefaults.
NSMutableDictionary* fruits = [NSMutableDictionary alloc];
[defaults setObject:fruits forKey:@"fruits"];
später dann diese, um es abzurufen.
NSMutableDictionary* fruits = [[NSMutableDictionary alloc] initWithDictionary:[defaults objectForKey:@"fruits"]];
Jedoch abrufen Wörterbuch stürzt meine Anwendung. Warum? Wie Speichere ich ein Wörterbuch in NSUserDefaults?
Sind Sie sicher, dass der Absturz passiert, wenn es abgerufen? Die erste Zeile fehlt
init
, der sollte einen Absturz verursachen, wenn es Hinzugefügt defaults
.InformationsquelleAutor Billy Goswell | 2012-04-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erhalten Sie eine immutable dictionary zurück. Sie brauchen nicht zu "capsulate" es in einem anderen Wörterbuch. Wenn Sie wollen, um es veränderlich schreiben:
https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nsuserdefaults_Class/Reference/Reference.html
Aktualisiert die Antwort; weil NSDictionary ist eine Superklasse von NSMutableDictionary und NSUserDefaults werden automatisch "konvertiert", wenn Sie es speichern.
InformationsquelleAutor LuckyLuke
Können Sie verwenden:
Sparen:
Abrufen:
InformationsquelleAutor Son Nguyen
Müssen Sie init dein Wörterbuch und set ist als ein Objekt, das später. Auf diese Weise funktioniert, ist es das gleiche wie dein Beispiel aber nur mit dem richtigen Initialisierung.
Nun komme ich zum log-Konsole und die app nicht abstürzt:
InformationsquelleAutor Josef Rysanek
sollte
Müssen Sie immer initialisieren von Objekten nach dem zuweisen der Ihnen.
InformationsquelleAutor Kurt Revis