我想制作一个测验应用程序,如果我得到正确的答案,只在我第一次点击时添加点数,但在第二次或第三次等时添加点数,当我点击按钮时,会增加点数。< / p>
class ViewController: UIViewController {
var points = 0
@IBAction func action(_ sender: AnyObject) {
var firstTimePressed : Bool = false
if(firstTimePressed == false) {
firstTimePressed = true
}
else {
points += 0
}
}
}
答案 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
}
[...]
}