我的应用程序崩溃了这行代码
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 .'
答案 0 :(得分:3)
问题在于您滥用键值编码。除非您已清楚地了解需要使用键值编码从用户默认值中获取数据,否则请勿使用value(forKey:)
。 @
符号在键值编码中具有特殊含义。
正确的解决方案是使用object(forKey:)
方法:
let test = UserDefaults.standard.object(forKey: "@")
或根据存储数据的数据类型从UserDefaults
读取数据的一种更具体的方法。