2017-07-25 37 views
0

我正在创建登录注册页面,但有错误。当我尝试登录时,userStoredEmailuser和userStoredPassword返回null。请帮助解决这个错误。NSUserDefaults.standardUserDefaults()。stringForKey(“useremail”)返回值为空的值

登录代码:

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); 

Registreration代码:

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) 
+0

,你叫这个'让userStoredEmail = NSUserDefaults.standardUserDefaults()。stringForKey(“useremail”)// return null' in viewdidload or else ' –

+0

'key value for key property – karthikeyan

+0

在IBAction onclick按钮我称这userstroedEmail @ anbu.karthik –

回答

4

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

是,你被错误保存价值userdefaults

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

没有必要的synchronize() - 它会自动更新userdefaults

+0

我很高兴看到不需要同步的好建议。太多的人在不了解它的功能的情况下使用它(而不是)。 +1 – Moritz

+0

@Moritz - 非常感谢和欢迎 –

2

你存储的 “钥匙” 作为值NSUserDefaults,所以你需要编写为

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

,而不是

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