NSUserDefaults.standardUserDefaults().stringForKey("useremail") 值返回 null

NSUserDefaults.standardUserDefaults().stringForKey("useremail") value returning null

我正在创建登录注册页面,但出现错误。当我尝试登录时,userStoredEmailuser 和 userStoredPassword 返回 null。请帮忙解决这个错误。

登录码:

let useremail=email.text;
let userpassword=password.text;

let userStoredEmail = NSUserDefaults.standardUserDefaults().stringForKey("useremail") //return null

let userStoredPassword = NSUserDefaults.standardUserDefaults().stringForKey("userpassword") //return null

// print(emails);
//  print(userStoredEmail);

注册码:

let useremail=email.text;
let userpassword=password.text;
let userRePassword = RePassword.text;
//check for empty field

//store data

let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject("useremail", forKey: useremail!)
defaults.setObject("userpassword", forKey: userpassword!)
defaults.synchronize()

let alert1 = UIAlertController(title: "Alert", message:"Registration is succesfully complete", preferredStyle:.Alert)
// add an action (button)

alert1.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))

presentViewController(alert1, animated: true, completion: nil)

您将 "key" 存储为 NSUserDefaults 中的值,因此您需要写为

defaults.setObject(useremail!, forKey:"useremail")
defaults.setObject(userpassword!, forKey:"userpassword")

而不是

defaults.setObject("useremail", forKey: useremail!)
defaults.setObject("userpassword", forKey: userpassword!)

不是

defaults.setObject("useremail", forKey: useremail!)
defaults.setObject("userpassword", forKey: userpassword!)

是的,你错误地将值保存到 userdefaults

defaults.setObject(useremail!, forKey: "useremail")
defaults.setObject(userpassword!, forKey: "userpassword")

不需要synchronize() - 它会自动更新用户默认值