如何在Swift中通过按钮按下增加标签值?

5

当我点击按钮时,我想要将标签增加2。

import UIKit

class ViewController: UIViewController {

    var cur = 0;

    @IBOutlet weak var money: UILabel!

    @IBAction func pressbutton(sender: UIButton) {
        cur = money.text!.toInt()!;
        self.money.text = String(cur + 2);

    }

}

这是我的当前代码,但我遇到了错误:

toInt() 不可用,使用 Int() 初始化器

出错的行为:

cur = money.text!.toInt()!;
3个回答

13

根据MVC编程模式,您不应该使用标签的内容来增加标签。相反,使用一个变量来存储您的Int,并通过为变量添加属性观察器来更新标签,例如:

class ViewController: UIViewController {

    @IBOutlet weak var someLabel: UILabel!

    var someValue: Int = 0 {
        didSet {
            someLabel.text = "\(someValue)"
        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        someValue = 0 // didSet is called when the variable is changed, not upon initialization.
    }

    @IBAction func buttonPressed(sender: UIButton) {
        someValue += 2
    }
}

此外,我建议你将变量 cur 重新命名为更具描述性的名称,并且你可以省略分号,因为它们是不必要的。


4
您可以通过将有问题的代码更改为以下内容来解决此错误:
cur = Int(money.text!)!;

关于初始化器的更多信息,请点击这里。以下是一段摘录:

初始化是为了让类、结构体或枚举实例准备好使用而进行的过程。该过程涉及为该实例上的每个存储属性设置初始值,并执行任何其他必要的设置或初始化,以使新实例准备好使用。


-3
money.text = "\(Int(money.text!)! + 2)"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接