gpt4 book ai didi

ios - NSUserDefaults boolForKey

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

我正在尝试让 NSUserDefaults 在我的应用程序中工作。下面的代码应该检查 NSUserDefaults 中是否有一个名为“iCloudOn”的 bool 值。如果存在,它将 UISwitch 的值分配给 NSUserDefault。如果没有,它将继续并将 false 分配给 NSUserDefault。

我已经标记了出现错误的行。我收到的错误是“条件绑定(bind)中的绑定(bind)值必须是可选类型。”我不知道为什么会收到此错误以及我需要做什么才能使它正常工作。谁能帮忙解释一下?

class SettingsTableViewController: UITableViewController{

@IBOutlet weak var iCloudUISwitch: UISwitch!

let appSettings = NSUserDefaults.standardUserDefaults()

override func viewDidLoad() {
super.viewDidLoad()

//THIS IS THE LINE I AM GETTING AN ERROR ON
if let iCloudOn = appSettings.boolForKey("iCloudOn") {
//iCloud is on
iCloudUISwitch.on = appSettings.boolForKey("iCloudOn")
}
else {
//Nothing stored in NSUserDefaults yet. Set a value.
appSettings.setValue(false, forKey: "iCloudOn")
}
}

最佳答案

boolForKey 函数不返回可选值。它总是返回 true 或 false。如果 key 在用户默认值中不存在,则返回 false。

您应该使用返回 AnyObject? 的 objectForKey,然后将其转换为 Bool

编辑:

如果今天为 Swift 编写此函数,它几乎肯定会返回 Bool? 类型(可选 Bool)这将是可选的完美用例。然而,NSUserDefaults 是在 Swift 之前很长时间定义和编写的(它是 NextStep 的一部分)

关于ios - NSUserDefaults boolForKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32280718/

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