将可选布尔值存储在 NSUserDefaults 中

Dav*_*ton 3 nsuserdefaults swift

我试图boolNSUserDefaults所有三个状态都有意义的地方存储一个可选值。

  • nil-> 尚未设置
  • true/ false-> 已明确设置为该值

目前,似乎如果您bool从 中检索 a NSUserDefaults,如果尚未设置,则返回false,这不适用于上述用例。

我不想使用 an ,enum因为它对于我想要实现的目标来说似乎太过分了。

我在这里缺少什么吗?

Gri*_*nyy 6

您可以从 UserDefaults 中获取值并尝试将其转换为Bool. 如果键没有值,则返回 nil。

let myBool = UserDefaults.standard.object(forKey: "BoolKey") as? Bool

或者

let myBool = UserDefaults.standard.value(forKey: "BoolKey") as? Bool

myBool = nil在这两种情况下

感谢user28434您的补充