Ios 从0开始时将Int保存为UserDefaults
我希望代码启动一个var num=0。然后在每次点击按钮后,num增加1。我遇到的问题是,当我切换视图控制器并返回到此视图控制器时,它再次从0开始。第一次加载时,Num只能从0开始一个平局。我想使用userdefults来保存数字,这样无论分数如何都会增加Ios 从0开始时将Int保存为UserDefaults,ios,swift,nsuserdefaults,Ios,Swift,Nsuserdefaults,我希望代码启动一个var num=0。然后在每次点击按钮后,num增加1。我遇到的问题是,当我切换视图控制器并返回到此视图控制器时,它再次从0开始。第一次加载时,Num只能从0开始一个平局。我想使用userdefults来保存数字,这样无论分数如何都会增加 import UIKit class ViewController: UIViewController { var num = 0 let defaults = UserDefaults.standard @IBA
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")
在这种情况下,不能使用默认值
变量
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=UserDefaults.standard.integer(forKey:“num”)
?否,不需要调用同步
。它已经过时了。请阅读文档。请看@rmaddy谢谢你纠正我-synchronize已弃用,并将在将来的版本中使用NS\U弃用宏进行标记。我现在看到了——但他们没有标记——我有Xcode 9.4.1版(9F2000)文档。但如果提到它,他们会将其标记为不推荐。谢谢,从来都不需要。他们现在才开始反对它。