使用@字符崩溃UserDefaults

时间:2018-01-12 03:25:01

标签: ios swift nsuserdefaults

我的应用程序崩溃了这行代码

let test = UserDefaults.standard.value(forKey: "@")

这看起来像Apple问题,UserDefaults似乎不接受以@开头的密钥

是否有人遇到此问题并为其提供解决方案?

这是错误消息

Terminating app due to uncaught exception 'NSUnknownKeyException', 
reason: '[<NSUserDefaults 0x6100000443b0> valueForUndefinedKey:]: 
this class is not key value coding-compliant for the key .'

1 个答案:

答案 0 :(得分:3)

问题在于您滥用键值编码。除非您已清楚地了解需要使用键值编码从用户默认值中获取数据,否则请勿使用value(forKey:)@符号在键值编码中具有特殊含义。

正确的解决方案是使用object(forKey:)方法:

let test = UserDefaults.standard.object(forKey: "@")

或根据存储数据的数据类型从UserDefaults读取数据的一种更具体的方法。