2010-07-17 5 views

Antwort

5

versinkt:

[[NSUserDefaults standardUserDefaults] setValue:_email forKey:@"email"]; 
[[NSUserDefaults standardUserDefaults] setValue:_password forKey:@"password"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 

zu lesen:

_email = [[NSUserDefaults standardUserDefaults] stringForKey:@"email"]; 
_password = [[NSUserDefaults standardUserDefaults] stringForKey:@"password"]; 

In Ihrem Fall:

[[NSUserDefaults standardUserDefaults] setValue:Number.text forKey:@"Number"]; 

Und:

NSString * number = [[NSUserDefaults standardUserDefaults] stringForKey:@"Number"];

Der „Key“ ist in der Regel hart codiert und funktioniert wie ein „Variablenname“ für Dinge in Speichern (typischer Name/Wert-Paare wie ein Wörterbuch).

Um zu überprüfen, ob der Wert gesetzt wurde oder nicht; nachdem Sie sie lesen:

if (number) ...
+1

so für das Textfeld namens Nummer das ist ein IBOutlet ich dies verwenden würde: [[NSUserDefaults standardUserDefaults] setValue: _number forKey: Nummer.text]; [[NSUserDefaults standardUserDefaults] setValue: _password forKey: Password.text]; [[NSUserDefaults standardUserDefaults] synchronisieren]; – user393273

+0

Normalerweise ist der "Schlüssel" fest codiert ... das ist sozusagen wie Ihr "Variablenname" für den gespeicherten Wert ... so ... [[NSUserDefaults standardUserDefaults] setValue: Number.text forKey: @ "Nummer"]; Macht das Sinn? – Steve

+0

Das wird funktionieren, aber es ist unsicher. Sie sollten vertrauliche Informationen im Schlüsselbund speichern. –

13

Sensible Informationen sollten im Schlüsselbund, ein kryptografisch sicheren Ort auf dem Gerät gespeichert werden. Wenn Sie den Benutzernamen und/oder das Passwort in NSUserDefaults speichern, speichern Sie sie als Klartext, der von Natur aus unsicher ist.

Es gibt viele Beispiele im Internet, wie man den Schlüsselbund auf dem iPhone verwendet, einfache Wrapper für den Code. Zum Beispiel ist hier ein paar ziemlich gute Code auf Github, dass es ganz einfach macht:

http://github.com/ldandersen/scifihifi-iphone/tree/master/security

+1

Bessere Antwort als meine. Danke für die Information. Natürlich sollte jeder Entwickler bestimmen, wie viel Sicherheit für die Zwecke seiner eigenen Anwendung benötigt wird, und die Nachteile der Verwendung des Schlüsselbunds verstehen (Simulator-Unterstützung, Unterstützung von Einstellungen-Apps, zusätzliche Komplexität und Entwicklungszeit). – Steve

Verwandte Themen