2016-05-22 10 views
0

Ich habe versucht, meine usernameLabel.text zu meinem loggedIn in NSUserDefaults gespeicherten Namen zu setzen. Beim Debuggen kann ich sehen, dass die NSUser die richtige Zeichenfolge hat, hier ist der Code:Swift Label.text = NSUserDefaults

@IBOutlet weak var usernameLabel:: UILabel! 

override func viewDidLoad(){ 
    super.viewDidLoad() 
} 

override func viewDidApeear(animated: Bool) 
{ 
    let username = NSUserDefaults.standardUserDefaults().stringForKey("userName") 
    if(username != nil) { 
    self.usernameLabel.text = username; 
    } 

} 

Edit: das ist über den Code, den ich in der ViewController Klasse. In meinem signup Klasse I speichern em wie folgt aus:

NSUserDefaults.standardUserDefaults().setObject(userName, forKey: "userName"); 
NSUserDefaults.standardUserDefaults().synchronize(); 
+0

Wie speichern Sie den Benutzernamen in Benutzereinstellungen? – Abizern

+0

verwende NSUserDefaults.standardUserDefaults(). SetObject (Benutzername, forKey: "userName"); – JohanDoe

+0

Ihr Code sollte funktionieren, wenn Sie den richtigen Wert in Ihren Benutzerdefaults gespeichert haben. Poste etwas mehr Code von dem was du versuchst zu tun. – ebby94

Antwort

0

Ihr Code korrekt ist. Das Problem kann auftreten, wenn Sie Outlet nicht richtig für UILabel In Storyboard oder Xib eingestellt haben. Überprüfen Sie trotzdem mit print() in der Nähe Ihres Labels. Probieren Sie diesen Code aus.

if(username != nil) { 
self.usernameLabel.text = "\(username)"; 
print("UserName:\(username)") 
} 
-1

Es ist einfach zu lösen, müssen Sie es erzwingen. Verwenden:

NSUserDefaults.standardUserDefaults().stringForKey("userName") 

Gibt Ihnen ein optionales Objekt. Um die richtige Zeichenfolge zu erhalten, wie Sie wollen, sollten Sie tun:

let username = NSUserDefaults.standardUserDefaults().stringForKey("userName") as String! 

dass Sie mit dem Inhalt eines String geben wird, was auf den NSUserDefaults.standardUserDefaults als Benutzernamen gespeichert ist.

0

Ihr Code ist perfekt. Hier können Sie sehen, es funktioniert für mich.

Code Image

Ausgabe des Codes. 1. InSimulator

output

2.Using Drucken

Output1

Versuchen Sie Ihr Projekt reinigen und Ihre App erneut ausführen oder die forKey Wert ändern.