从0开始将Int保存为UserDefaults

时间:2018-07-08 04:58:37

标签: ios swift nsuserdefaults

我希望代码以var num = 0开头。然后,每按一次num键,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")
    }
}

2 个答案:

答案 0 :(得分:2)

您必须从}).catchError((e) { print(e.details); // code, message, details }); 初始化num

将此添加到UserDefaults

viewDidLoad

或者只是将您的num = defaults.integer(forKey: "num") 行更新为:

var num = 0

在这种情况下,您不能使用var num = UserDefaults.standard.integer(forKey: "num") 变量。

答案 1 :(得分:1)

  1. 在用户设置了默认值后立即调用syncnize(),因此它将保存。
  2. 已将View中将出现的设置为num的值重新设置为num,因为将在其他屏幕上弹出此View时将调用View Will Appear。

查看代码

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()
    }
}
相关问题