我如何制作第一次做A的按钮,但是第二次按B做按钮?

时间:2017-08-23 08:34:28

标签: swift3 xcode8

我想制作一个测验应用程序,如果我得到正确的答案,只在我第一次点击时添加点数,但在第二次或第三次等时添加点数,当我点击按钮时,会增加点数。< / p>

class ViewController: UIViewController {
    var points = 0

    @IBAction func action(_ sender: AnyObject) {
        var firstTimePressed : Bool = false

        if(firstTimePressed == false) {
            firstTimePressed = true
        }
        else {
            points += 0
        }
    }
}

2 个答案:

答案 0 :(得分:1)

除了the4kman的答案,您还可以在函数中使用firstTimePressed变量,但必须使其静态

@IBAction func action(_ sender: AnyObject) {
    static var firstTimePressed : Bool

    if(firstTimePressed) {
        // it isn't the first press
    }
    else {
        // it is the first press
        firstTimePressed = true
    }
}

第一次调用函数时firstTimePressed将被设置为false,因此不会传递if语句并触发else,然后将firstTimePressed设置为true

答案 1 :(得分:0)

firstTimePressed成为类变量(即将其移出函数)。这样,它就不会在函数执行结束后自行销毁。

var firstTimePressed = true

@IBAction func action(_ sender: AnyObject) {
    [...]

    if firstTimePressed {
        points += 1

        firstTimePressed = false
    }

    [...]
}