使用 @ 字符在 UserDefaults 上崩溃
Crash on UserDefaults with @ character
我的应用在这行代码上崩溃了
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 .'
问题是您误用了键值编码。不要使用 value(forKey:)
除非您清楚地了解需要使用键值编码从用户默认值中获取数据。 @
符号在键值编码中有特殊含义。
正确的解决方法是使用object(forKey:)
方法:
let test = UserDefaults.standard.object(forKey: "@")
或根据存储数据的数据类型从 UserDefaults
读取数据的更具体方法之一。
我的应用在这行代码上崩溃了
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 .'
问题是您误用了键值编码。不要使用 value(forKey:)
除非您清楚地了解需要使用键值编码从用户默认值中获取数据。 @
符号在键值编码中有特殊含义。
正确的解决方法是使用object(forKey:)
方法:
let test = UserDefaults.standard.object(forKey: "@")
或根据存储数据的数据类型从 UserDefaults
读取数据的更具体方法之一。