我正在使用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