Ich erstelle diese Anwendung, die aus der Benutzerpunktzahl besteht. Wenn sie die App verlassen, wird ihre Punktzahl gespeichert. Ich mache das durch NSUserDefaults, das funktioniert gut. Das Problem besteht darin, dass die Benutzerbewertung in anderen Ansichten manipuliert werden kann. Zum Beispiel können sie ihre Punktzahl verwenden, um Sachen usw. zu kaufen. Dazu speichere ich das Ergebnis in NSUserDefaults und lade diese gespeicherten Daten dann einfach in der nächsten Ansicht ab. Das Problem besteht darin, dass die Daten aus irgendeinem Grund nicht gespeichert werden. Ich habe einen Timer, der jede Sekunde läuft, die den Punktestand speichert, und ich speichere ihn mit einer IBAction, wenn ich auf die Schaltfläche klicke, um zur nächsten Ansicht zu gelangen. Hier ist, was ich verwende, um die Variable zu initialisieren:NSUserDefaults Keine Daten speichern Objective C
score = [[[NSUserDefaults standardUserDefaults] objectForKey:@"score"] longLongValue];
Und das ist es zu retten:
[[NSUserDefaults standardUserDefaults] setObject:@(score) forKey:@"score"];
ich eine lange lange Variable verwenden, weshalb ich es als Objekt habe im Gegensatz zu ganze Zahl. Ich verstehe nicht, warum die Werte geändert werden, wenn ich die Ansichten ändere. Immer wenn ich den Score-Wert manipuliere, speichere ich es. Am Anfang jeder Ansicht deklariere ich es. Ich weiß, dass andere Leute ähnliche Fragen gestellt haben, und ich habe sie alle angesehen. Diese Antworten haben mein Problem nicht gelöst, weshalb ich hier gefragt habe. Synchronisieren
[[NSUserDefaults standardUserDefaults] synchronize];
hat auch nicht für mich gearbeitet.
speichern Sie – Jacky
Mögliche Duplikat synchronisieren vergessen [Warum ist NSUserDefaults meine Werte nicht speichern?] (Http://stackoverflow.com/questions/2622754/why-is-nsuserdefaults-not-saving -my-values) –