gpt4 book ai didi

ios - 设置 nil UserDefaults 时出现 NSInvalidArgumentException

转载 作者:行者123 更新时间:2023-11-28 12:18:26 25 4
gpt4 key购买 nike

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

如果值为 nil,难道不应该删除 key 吗?

最佳答案

问题是试图将 NSNull 的值存储在 UserDefaults 中。这不受支持。 nil 很好,它只是删除任何现有值。但是 NSNullnil 不是一回事。

你需要处理这个问题。这是一种解决方案:

var val = getValue(value)
if val is NSNull {
val = nil
}
UserDefaults.standard.set(val, forKey: "pref_key")

关于ios - 设置 nil UserDefaults 时出现 NSInvalidArgumentException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45655631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com