Xcode运行"太快"

时间:2015-06-24 21:40:50

标签: ios xcode swift

我的代码运行时遇到问题"太快"在我的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()
    }
}

2 个答案:

答案 0 :(得分:1)

您想使用else if,因此只能运行一个块,例如:

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

答案 1 :(得分:0)

您需要使用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