如何让标签不断显示 int (swift4)

how to get label to constantly display int (swift4)

我想知道是否有办法让标签显示int。基本上覆盖所有 if 语句。我知道我可以这样做 if 语句,但我只是问这个问题,看看我是否可以编写更高效的代码。

class ViewController: UIViewController {
    var time = -3
    @IBOutlet var label: UILabel!

    @IBAction func method2() {
        time += 1
        label.text = String(time)
    }

    @IBAction func method1() {
        time += 1
        label.text = String(time)
    }
}

您在这段代码中看到 label.text = String(time) 重复了两次。我想看看我是否可以编写此代码,使其只出现一次。

有几种方法可以做到这一点,您可以创建一个额外的方法,如下所示:

class ViewController: UIViewController {

    var time = -3

    @IBOutlet var label: UILabel!

    @IBAction func method1() {
        self.incrementAndDisplayTime()
    }

    @IBAction func method2() {
        self.incrementAndDisplayTime()
    }

    private func incrementAndDisplayTime() {
        self.time += 1
        label.text = String(time)
    }
}

或设置时间时显示时间:

class ViewController: UIViewController {

    var time = -3 {
        didSet {
            self.label.text = String(time)
        }
    }

    @IBOutlet var label: UILabel!

    @IBAction func method1() {
        self.time += 1
    }

    @IBAction func method2() {
        self.time += 1
    }

}

或者从一个方法调用另一个方法:

class ViewController: UIViewController {
    var time = -3
    @IBOutlet var label: UILabel!

    @IBAction func method1() {
        self.method2()
    }

    @IBAction func method2() {
        time += 1
        label.text = String(time)
    }
}