2015-12-19 83 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错误或限制不正常工作
相关问题