Xcode 运行"Too Fast"



我的代码在Xcode项目中"过快"地运行选项时遇到问题(在iPhone上测试时)。我有两个按钮,可以控制将牛奶量从常规[默认选项]更改为轻量或增加至额外量。当我触摸将奶量降低到较轻时,效果很好。然而,从这个选项中,当我按下向上箭头将牛奶量更改回常规时,它会更改为常规,然后更改为额外,因为代码执行得太快了。这有点难以用语言来解释,但我正在努力弄清楚如何让流程在每次迭代时都停止,而不会一直跳到行的末尾。我会在下面发布我的代码,但如果你需要更多的澄清来帮助我,请告诉我!

@IBAction func changeMilkAmountRight(sender: UIButton) {
    if milkAmount == 1 {
        milkAmount = 2
        milkAmountLabel.text = String("regular")
        updateLabels()
    }
    if milkAmount == 2 {
        milkAmount = 3
        milkAmountLabel.text = String("extra")
        updateLabels()
    }
}
@IBAction func changeMilkAmountLeft(sender: UIButton) {
    if milkAmount == 3 {
        milkAmount = 2
        milkAmountLabel.text = String("regular")
        updateLabels()
    }
    if milkAmount == 2 {
        milkAmount = 1
        milkAmountLabel.text = String("light")
        updateLabels()
    }
}

您希望使用else if,以便只有一个块可以运行,例如:

if milkAmount == 3 {
    milkAmount = 2
    milkAmountLabel.text = String("regular")
    updateLabels()
} else if milkAmount == 2 {
    milkAmount = 1
    milkAmountLabel.text = String("light")
    updateLabels()
}

您需要使用else if

在这里输入您的代码:

if milkAmount == 1 {
    milkAmount = 2
    milkAmountLabel.text = String("regular")
    updateLabels()
}
if milkAmount == 2 {
    milkAmount = 3
    milkAmountLabel.text = String("extra")
    updateLabels()
}

想象一下它进入第一个街区。milkAmount最初等于1,但输入代码块并将其更改为2。在代码块退出后,检查milkAmount是否等于2(事实上),然后更改为3

相反,在第二个if语句中使用else if,如下所示:

if milkAmount == 1 {
    milkAmount = 2
    milkAmountLabel.text = String("regular")
    updateLabels()
}
else if milkAmount == 2 {
    milkAmount = 3
    milkAmountLabel.text = String("extra")
    updateLabels()
}

现在,如果执行了第一个块,您的代码甚至不会检查milkAmount是否等于2,您的问题就会得到解决。

考虑阅读Swift中的if语句:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Statements.html

最新更新