2015-12-19 20 views
-3

NSUser默認不會儲存我的數據 我寫在遊樂場的代碼來檢查問題和我Nill值..的Xcode 7.2 請覈實什麼是錯的代碼Image enclosedNSUserDefaults not存儲數據。 IT賣場Nill值而不是

+0

阿卜杜勒·瓦希德請留言代碼,而不是代碼的圖像。 「{}」按鈕完全用於發佈代碼,謝謝! –

+0

保存'NSUserdefaults'異步工作。當您立即閱讀時,您會得到不可靠的結果。 – vadian

+0

不知道這只是一個例子,但'NSUserDefaults'是**不是**存儲用戶密碼的安全地點。特別是在純文本中。如果您想存儲密碼,請查看使用鑰匙串。另外'NSUserDefaults'不會在操場上工作,所以在一個真實的項目中測試你的代碼。 – liamnichols

回答

0

我相信NSUserDefaults在Xcode Playground 7.2中無法正常工作。

下面的代碼

NSUserDefaults.standardUserDefaults().setObject("hello world", forKey: "key1") 

NSUserDefaults.standardUserDefaults().objectForKey("key1") 

並在Xcode 7.2操場返回nil

但是,在真實項目上執行的相同代碼(並在模擬器中執行)確實有效,第二行確實返回hello world

+0

是啊,它不適用於playgorund –

0

嗨更換下面的代碼在實際項目中,NSUserDefaultsPlayground中返回nilNSUserDefaults不會在遊樂場工作,所以試下你的代碼在一個真正的項目

完整代碼示例:

import UIKit 

let userdefaults = NSUserDefaults.standardUserDefaults() 
var name = "myname" 
var pass = "123" 

userdefaults.setValue(name, forKey: "username") 
userdefaults.setValue(pass, forKey: "userpass") 


print(userdefaults.valueForKey("username")) 

最後一行將重點username的返回值。

+0

他正在使用Xcode 7.2,這意味着Swift 2.1。你的代碼不適用於Swift 2.1('println'不再存在)。我在Xcode Playground 7.2中測試了你的代碼,它不能編譯。我修正了編譯錯誤,在OP中描述的問題仍然存在,事實上'userdefaults.valueForKey(「username」)'返回'nil'。 –

+0

@ appzYourLife ..結帳更新了答案。 –

+0

這是我的Xcode Playground 7.2'致命錯誤的結果:意外地發現零,同時展開一個可選的值。你的Xcode Playground發生了什麼?在我這邊'NSUserDefaults'沒有找到以前保存的值。我認爲這是Xcode Playground中的一個bug 7.2 –

0

測試和Xcode 7.1.1 &斯威夫特2

  • NSUserDefaults的工作不正常 - >貌似操場
  • 的NSKeyedArchiver錯誤或限制不正常工作
相關問題