swift - 在 NSUserDefaults 中存储可选的布尔值
问题描述
我正在尝试将一个可选存储bool
在NSUserDefaults
所有三个状态都有意义的地方。
nil
-> 尚未设置true
/false
-> 已明确设置为此值
目前,如果您bool
从 中检索 a NSUserDefaults
,如果尚未设置则返回false
,这不适用于上述用例。
我不想使用 an enum
,因为它对于我想要实现的目标来说似乎有点矫枉过正。
我在这里缺少什么吗?
解决方案
您可以从 UserDefaults 中获取值并尝试将其转换为Bool
. 如果键没有值,则为零。
let myBool = UserDefaults.standard.object(forKey: "BoolKey") as? Bool
或者
let myBool = UserDefaults.standard.value(forKey: "BoolKey") as? Bool
myBool = nil
在这两种情况下
感谢user28434
补充
推荐阅读
- machine-learning - 如何对不同的输入数据使用机器学习算法?
- javascript - 使用与 providedIn 相同的服务:root 作为单例和组件的提供者与服务
- reflection - F# 反射:将数组作为参数传递给 MethodInfo.Invoke
- json - Angular 8 ngx-translate 从 URL 加载翻译 JSON 文件
- react-native - 如何缓存数据并在反应式中获取?
- azure - 如何使用 Azure Kusto 输出多个变量?
- javascript - 在反应中使用firebase数据库时登录用户的电子邮件
- c# - 如何在 || 右侧的区域中添加等待 在“如果(计数 == 0 || 等待 MainPage.DisplayAlert”
- perl - 如何从数组中删除特定元素?
- mysql - 如何获取选择子查询,其中另一个表的整个数据以 json 格式获取