我正在使用UserDefaults
将值存储到首选项中。当设置为零时,NSInvalidArgumentExceptionException UserDefaults
我有一个模板类,并获得价值(需要重写)的方法
func getValue(_ value: T?) -> Any?
{
return value
}
当我'电话:
UserDefaults.standard.set(getValue(value), forKey: "pref_key")
其中value
可以nil
, 我得到这个错误:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attempt to insert non-property list object null for key pref_key'
Wa如果价值为零,它应该删除密钥吗?
你是否从'getValue'方法返回'nil'或'NSNull'? – rmaddy
无,但有些值可能是NSNull,是不是应该支持两者? – 4bottiglie
不,您不能在UserDefaults中存储'NSNull'。 – rmaddy