gpt4 book ai didi

ios - 如何在 Swift 中处理 NSUserDefaults 中的非可选值

转载 作者:搜寻专家 更新时间:2023-11-01 05:58:15 24 4
gpt4 key购买 nike

要从 NSUserDefaults 中获取值,我会这样做:

let userDefaults = NSUserDefaults.standardUserDefaults()
if let value = userDefaults.objectForKey(key) {
print(value)
}

但是,这些方法不返回可选值:

  • boolForKey(如果未设置则默认为 false)
  • integerForKey(如果未设置则默认为 0)
  • floatForKey(如果未设置则默认为 0.0)
  • doubleForKey(如果未设置则默认为 0.0)

在我的应用程序中,如果先前已设置,我想使用整数的保存值。如果之前没有设置,我想使用我自己的默认值。问题是 0 是我的应用程序的有效整数值,所以我无法知道 0 是以前保存的值还是默认的未设置值.

我该如何处理?

最佳答案

您可以使用 objectForKey(它返回一个可选值)并使用 as? 选择性地将其转换为 Int

if let myInteger = UserDefaults.standard.object(forKey: key) as? Int {
print(myInteger)
} else {
print("no value was set for this key")
}

BoolFloatDouble 的解决方案将以相同的方式工作。

注意:

如果可能,我建议使用已接受的答案并设置默认值,而不是强制转换通用对象。

关于ios - 如何在 Swift 中处理 NSUserDefaults 中的非可选值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32645517/

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