我的代码在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