Wenn die rootViewController
meiner Anwendung geladen ist, möchte ich überprüfen können, ob die Anmeldeinformationen des Benutzers gespeichert wurden oder nicht NSUserDefaults
.
Wenn der Benutzer die Anwendung lädt und seine Anmeldeinformationen nicht gespeichert sind, modalAlertView
wird im Grunde genommen ein Push gesendet und der Benutzer kann seine Anmeldeinformationen entsprechend speichern. Dadurch werden diese UITextField
Zeichenfolgen in einem entsprechenden NSUserDefault
Objekt gespeichert. Ist es jedoch möglich, dass ich nach dem Speichern NSUserDefault
ein boolesches Objekt erstellen und den Wert in "Ja" ändern kann?
Bedeutet dies, dass der Boolesche Wert bereits auf "Nein" gesetzt ist und der Benutzer beim Speichern seiner Anmeldeinformationen auch den Booleschen Wert in "Ja" ändert.
quelle
Es gibt eine Methode in
NSUserDefaults
aufgerufenregisterDefaults:
. Mit dieser Methode legen Sie die "Standardwerte" Ihrer Anwendung fest. Grundsätzlich erstellen Sie einenNSDictionary
Schlüssel mit Ihren Standardschlüsseln und -werten (in Ihrem Fall ein NEIN für einen Schlüssel "Gespeicherte Anmeldeinformationen") und registrieren ihn mitregisterDefaults:
. Dies geschieht häufig in der+ (void)initialize
Methode des App-Delegaten, um sicherzustellen, dass Ihre Standardeinstellungen registriert werden, bevor sie benötigt werden. Diese Werte werden nur verwendet, wenn Ihre App sie nicht ersetzt hat. Mit anderen Worten, sie werden nur verwendet, wenn sich der gesuchte Schlüssel nicht in der Anwendungsdomäne befindet, dh der Benutzer liest standardmäßig aus der .plist-Datei des Benutzers.Auf der anderen Seite können Sie einfach nach Anmeldeinformationen suchen und eine Warnung anzeigen, wenn diese fehlen. Dadurch entfällt die Notwendigkeit, Ihren Booleschen Wert mit den Anmeldeinformationen zu synchronisieren. Wenn Sie später die Funktion "Anmeldeinformationen löschen" bereitstellen, müssen Sie nicht daran denken, den Booleschen Wert auf NO zurückzusetzen. Wenn Ihre Anmeldeinformationen in den Standardeinstellungen des Benutzers gespeichert sind, gehen Sie folgendermaßen vor:
quelle
Diese von Henrik P. Hessel vorgeschlagene Lösung:
würde in Ihrem Fall funktionieren, aber denken Sie daran, dass Sie mit diesem Code nicht prüfen sollten, ob ein Schlüssel überhaupt gesetzt ist, denn wenn er tatsächlich gesetzt und auf "NEIN" gesetzt ist, würden Sie immer noch ein Ergebnis erhalten, als ob dies nicht der Fall wäre überhaupt eingestellt. Stattdessen würde ich verwenden
quelle
Sie müssen es nicht zuerst einstellen
NO
, sondern können überprüfen, ob überhaupt ein Schlüssel gesetzt wurde. Wenn nicht und wenn Ihre App feststellt, dass die Anmeldeinformationen vollständig sind, erstellen Sie sie einfach und setzen Sie sie aufYES
.Überprüfen Sie meine Antwort auf eine andere Frage, um zu sehen, wie ich das normalerweise mache.
quelle
in Swift 3
alternativ können wir es
object(forKey:)
dann verwenden, um es zu boolenquelle
Swift 2.3
Werte speichern
Zum Abrufen von Werten
Swift 3.0
Werte speichern
Werte abrufen
quelle