从 0 开始时将 Int 保存到 UserDefaults
Saving Int to UserDefaults when starting at 0
我希望代码启动一个 var num = 0。然后在每次点击按钮后 num 增加 1。我 运行 遇到的问题是,当我切换视图控制器并返回到此一个它再次从 0 开始。第一次加载时num只能从0开始。我想使用 userdefults 来保存数字,所以无论分数总是会增加。
import UIKit
class ViewController: UIViewController {
var num = 0
let defaults = UserDefaults.standard
@IBAction func press () {
num += 1
defaults.set(num, forKey: "num")
}
}
您必须从 UserDefaults
初始化 num
。
将此添加到 viewDidLoad
:
num = defaults.integer(forKey: "num")
或者只需将 var num = 0
行更新为:
var num = UserDefaults.standard.integer(forKey: "num")
在这种情况下,您不能使用 defaults
变量。
- 在用户默认设置数据后立即调用 synchronize(),以便保存它。
- 已将视图中的值设置回 num 将出现,因为视图将出现将在从其他屏幕弹出到此视图时被调用。
查看代码
import UIKit
class ViewController: UIViewController {
var num = 0
let defaults = UserDefaults.standard
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
num = defaults.integer(forKey: "num")
print("Value of number from defaults \(num)")
}
@IBAction func press () {
num += 1
defaults.set(num, forKey: "num")
defaults.synchronize()
}
}
我希望代码启动一个 var num = 0。然后在每次点击按钮后 num 增加 1。我 运行 遇到的问题是,当我切换视图控制器并返回到此一个它再次从 0 开始。第一次加载时num只能从0开始。我想使用 userdefults 来保存数字,所以无论分数总是会增加。
import UIKit
class ViewController: UIViewController {
var num = 0
let defaults = UserDefaults.standard
@IBAction func press () {
num += 1
defaults.set(num, forKey: "num")
}
}
您必须从 UserDefaults
初始化 num
。
将此添加到 viewDidLoad
:
num = defaults.integer(forKey: "num")
或者只需将 var num = 0
行更新为:
var num = UserDefaults.standard.integer(forKey: "num")
在这种情况下,您不能使用 defaults
变量。
- 在用户默认设置数据后立即调用 synchronize(),以便保存它。
- 已将视图中的值设置回 num 将出现,因为视图将出现将在从其他屏幕弹出到此视图时被调用。
查看代码
import UIKit
class ViewController: UIViewController {
var num = 0
let defaults = UserDefaults.standard
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
num = defaults.integer(forKey: "num")
print("Value of number from defaults \(num)")
}
@IBAction func press () {
num += 1
defaults.set(num, forKey: "num")
defaults.synchronize()
}
}