2017-07-25 1 views
0

Je crée une page d'enregistrement de connexion, mais une erreur s'est produite. userStoredEmailuser et userStoredPassword retournent la valeur null lorsque j'essaie de me connecter. S'il vous plaît aider pour cette erreur.NSUserDefaults.standardUserDefaults(). StringForKey ("useremail") valeur renvoyant une valeur nulle

code de connexion:

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

Code 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

où vous avez appelé ce ' let userStoredEmail = NSUserDefaults.standardUserDefaults(). stringForKey ("useremail") // renvoie null' dans viewdidload ou ' –

+0

valeur d'utilisation pour la propriété clé – karthikeyan

+0

dans IBAction onclick du bouton que j'ai appelé ce userstroedEmail @ anbu.karthik –

Répondre

4

n'est pas

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

il est, vous tort enregistré la valeur à userdefaults

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

pas besoin de synchronize() - il mettra à jour automatiquement les userdefaults

+0

Je suis vraiment content de voir le bon conseil de ne pas avoir besoin de synchronisation. Trop de gens l'utilisent sans comprendre ce qu'il fait (et ne fait pas). +1 – Moritz

+0

@Moritz - merci et bienvenue m bro –

2

Vous stockez "clé" comme valeur NSUserDefaults si vous avez besoin d'écrire comme

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

au lieu de

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