2017-07-25 16 views
0

ログイン登録ページを作成していますが、エラーがあります。 userStoredEmailuserとuserStoredPasswordは、ログインしようとするとnullを返します。このエラーのために助けてください。NSUserDefaults.standardUserDefaults()。stringForKey( "useremail")の値が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); 

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

を更新しますstringForKey( "useremail")// viewdidloadにnullを返します。 ' –

+0

キープロパティの値を使用します。 – karthikeyan

+0

ボタンのIBAction onclickでこのuserstroedEmail @ anbu.karthikを呼び出しました –

答えて

4

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

ではありませんあなたが

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

synchronize()の必要性を全くuserdefaultsないように値を誤って保存されている - それは自動的に `あなたがこれを呼ばuserdefaults

+0

私は同期が必要でないという良いアドバイスを見て本当にうれしいです。あまりにも多くの人々は、それが何をしているのか理解せずにそれを使用しています。 +1 – Moritz

+0

@モリッツ - ありがとうと歓迎m bro –

2

あなたはとてもあなたが

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

の代わり

として記述する必要が NSUserDefaultsでの値として "キー" を記憶しています
defaults.setObject("useremail", forKey: useremail!) 
defaults.setObject("userpassword", forKey: userpassword!) 
関連する問題