2012-03-26 15 views
2

Ich gebe einige Benutzerinformationen zu meinem Upp über Textfelder. Ich möchte, dass meine App diese Informationen speichert und wenn meine App geöffnet wird, verwende dieselben Informationen. Ich habe NSUserDefaults verwendet, aber wenn ich die App aus dem RAM säubere (also von den laufenden Prozessen) und versuche, meine App zu stattieren/zu öffnen, stürzt sie ab. Was muss ich verwenden, um Benutzerinformationen ständig zu speichern?So speichern Sie Benutzerinformationen in der Anwendung

EDIT

ich meine Daten in AppDelegate sparen, möchte ich, wenn der Benutzer Home-Button klickt, gespeichert werden, um Benutzerinformationen. Hier ist mein Code:

- (void)applicationDidEnterBackground:(UIApplication *)application 
    { 
     NSLog(@"url in background: %@", mainUrl); 
//uName and passwd are strings that come from other classes 
     NSUserDefaults *name=[NSUserDefaults standardUserDefaults]; 
     [name setObject:uName forKey:@"userNameDefault"]; 

     NSUserDefaults *passWd=[NSUserDefaults standardUserDefaults]; 
     [passWd setObject:passwd forKey:@"passwordDefault"]; 
    } 

EDIT-2

ich dies tun, sobald ich die Antwort vom Server in meinem ersten View-Controller erhalten. Ich benutze diese drei Datenobjekte in sturtup aber noch stürzt

NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults]; 
      [defaults setObject:_username.text forKey:@"userNameDefault"]; 
      [defaults setObject:_password.text forKey:@"passwordDefault"]; 
      [defaults setObject:_server.text forKey:@"serverDefault"]; 
+0

NSUserDefaults ist die korrekte Methode. Zeigen Sie Code, wie Sie es implementieren. – Darren

+0

@Darren können Sie bitte meine Bearbeitung sehen – ilhnctn

+0

Es ist nicht notwendig, NSUser Defaults zweimal zu deklarieren. Verwenden Sie einfach NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults] und verwenden Sie [defaults setobject ... für beide. Das ist jedoch nicht dein Problem. Sie sagen, es stürzt ab, wenn Sie die App neu starten, welcher Code wird beim Start verwendet? – Darren

Antwort

1

Ihr die Standardwerte wieder in Ihre View-Controller-Einstellung, wenn Sie wollen, dass sie zu abrufen, um sie anzuzeigen? uName = [Standardwert objectForKey @ "userNameDefault"]

+0

nein, ich setze sie nicht wieder. Ich entfernte die erste Seite aus meiner Klasse (aber es bleibt immer noch bei der Frage). Ich habe alle Methoden erstellt, ich benutze diese Informationen, um eine GET-Anfrage an meinen HTTP-Server zu senden, muss ich diese Codes auch ändern? – ilhnctn

+0

Ok, Sie haben den Code immer noch nicht angezeigt, was ihn beim Start zum Absturz gebracht hat. Welche Methode stürzt ab? – Darren

+0

Sie verwenden die 3 Datenobjekte beim Start. Erhalten Sie die Datenobjekte von NSUserDefaults mit der Methode zurück, die ich gepostet habe, bevor Sie sie verwenden? – Darren

Verwandte Themen