Frage

In meiner app ich bin mit einem NSUserDefaults Objekt den Benutzernamen, Passwort und Server-URL im eingebauten Einstellungen App zu speichern. Wenn es keine Daten gespeichert ist, wird der Benutzer eine Login-Schnittstelle und bei erfolgreicher Anmeldung präsentiert der Benutzername und das Passwort gespeichert werden. Dann in meiner app habe ich eine Ansicht, die diese Information anzeigt, aber der Text fehlt, als ob die Daten noch auf die Einstellungen nicht gespeichert wurden. Hier ist der Code:

...
NSUserDefaults* appSettings = [NSUserDefaults standardUserDefaults];
[appSettings setObject:username forKey:USERNAME];
[appSettings setObject:password forKey:PASSWORD];

if ( [appSettings synchronize] ) {

   // display an alert with a positive message
} else {
   // display an alert with a negative message

}

So, nach der Protokollierung in der positiven Meldung angezeigt wird, aber wenn ich die Daten hole wieder es ist nichts da, wenn ich die App neu zu starten.

Was muß ich tun, um die Daten zu speichern, sofort oder zumindest vor einer anderen View-Controller-Anforderungen die Einstellungen lesen?

War es hilfreich?

Lösung

Die NSUserDefaults Objekt speichert seine Daten im Speicher und ist ein globales Objekt (auf Ihre Bewerbung, sowieso). Somit sollte sofort dort alles, was Sie speichern, um etwas vorhanden sein, dass versucht, zuzugreifen es danach. Sie nicht hier, um den Anruf synchronisieren muß. Wenn Sie Ihre Daten nicht bekommen, sollten Sie die Reihenfolge der Anrufe überprüfen, um sicherzustellen, dass sie genannt werden wird, wenn Sie denken, sie sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top