我一直在尝试将usernameLabel.text
设置为存储在NSUserDefaults中的loggedIn
名称。
调试时我可以看到NSUser
确实有正确的字符串,这里是代码:
@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;
}
}
编辑:这就是我在ViewController
课程中的代码。在我的signup
课程中,我按照以下方式存储:
NSUserDefaults.standardUserDefaults().setObject(userName, forKey: "userName");
NSUserDefaults.standardUserDefaults().synchronize();
答案 0 :(得分:0)
您的代码是正确的。如果没有为UILabel在Storyboard或Xib中正确设置插座,可能会出现此问题。无论如何使用print()
靠近您的标签进行检查。请尝试以下代码。
if(username != nil) {
self.usernameLabel.text = "\(username)";
print("UserName:\(username)")
}
答案 1 :(得分:0)
答案 2 :(得分:-1)
它很容易解决,你必须强迫它。使用:
NSUserDefaults.standardUserDefaults().stringForKey("userName")
会给你一个可选对象。要获得所需的正确字符串,您应该:
let username = NSUserDefaults.standardUserDefaults().stringForKey("userName") as String!
这将为您提供一个字符串,其中包含在NSUserDefaults.standardUserDefaults上存储为用户名的内容。