Gab*_*e12 3 nsuserdefaults ios swift
我正在尝试从UISwitch 将bool值保存到UserDefaults,并在另一个视图中检索它.但是,我尝试过多个教程和堆栈答案,似乎没有工作.
这是我如何保存它:
class SettingsViewController: UITableViewController {
@IBOutlet weak var soundSwitchOutlet: UISwitch!
@IBAction func soundSwitch(_ sender: UISwitch) {
UserDefaults.standard.set(soundSwitchOutlet.isOn, forKey: "sound")
}
Run Code Online (Sandbox Code Playgroud)
这就是我试图在另一个视图中检索它的方式:
if let savedValue = UserDefaults.standard.bool(forKey: "sound") {
boolValue = savedValue
}
//this is inside viewDidLoad and "boolValue" was declared outside viewDidLoad//
Run Code Online (Sandbox Code Playgroud)
出于某种原因,这段代码给了我错误,而且我尝试过的东西都没有.如何将bool保存到UserDefaults并在另一个视图中检索它?
编辑:我想我修复了第一部分.但是,我检索布尔值的方式似乎完全错误.另外:没有其他stackExchange答案回应我的要求,至少不是迅速.
vad*_*ian 16
正如Leo在评论中提到的那样,bool(forKey
返回一个非可选的Bool
.如果密钥不存在false
则返回.
所以很简单
boolValue = UserDefaults.standard.bool(forKey: "sound")
Run Code Online (Sandbox Code Playgroud)
synchronize()
不需要按照其他答案中的建议进行呼叫.框架定期更新用户默认数据库.
归档时间: |
|
查看次数: |
7785 次 |
最近记录: |