在Swift中保存基本数据 - iOS

时间:2014-12-26 15:43:51

标签: ios swift

我在应用程序运行时有一个简单的布局,只允许用户输入一些文本,如果文本是正确的,分数计数器将保存收到的数据,而不是再次运行for循环

@IBAction func checkAnswer(sender: AnyObject) {
    while canAdd {
        if output.text == "hi" {
            canAdd = false
            rightOrWrong.text = "Right!"
            scoreTotal += 1
            count.text = String(scoreTotal)
        } else {
            canAdd = true
            rightOrWrong.text = "Try again!"
        }
    }
}

最简单的方法是什么?

由于

1 个答案:

答案 0 :(得分:0)

正如您的代码现在所示,如果用户输入错误的数字,您的循环将无数次执行,因为canAdd总是等于真。

我认为你误解了while循环的目的...... while循环将继续执行一遍又一遍,而不会暂停或等待用户输入,只要满足某个条件,所以你的当前while循环可以每秒运行数千次,因此可能会阻止用户交互并可能导致程序崩溃。

如果您只想在每次按下按钮时得分增加/不增加,则不需要使用while循环。如果有条件,只需将您的canAdd条件添加到当前条件即可。我认为这就是你要做的事情:

@IBAction func checkAnswer(sender: AnyObject) {

    if output.text == "hi" && canAdd == true {
        canAdd = false
        rightOrWrong.text = "Right!"
        scoreTotal += 1
        count.text = String(scoreTotal)
    } else {
        canAdd = true
        rightOrWrong.text = "Try again!"
    }
}