Swift:如何等到变量具有特定值

Dav*_*ger 1 swift swift3

我正在尝试编写等待变量等于某个值的代码。这是我写的代码:

    var i = 0

    for i in 1...10 {
        playtrial()
        repeat {

        } while (WasItCorrect=="")

    WasItCorrect = ""
    }
Run Code Online (Sandbox Code Playgroud)

这个想法是该函数将调用 playtrial,等到变量 WasItCorrect 有一个值(除了“”),重置 WasItCorrect,然后重复(总共 10 次)。

该代码不会产生任何错误。但是,在 plastral 完成后,程序似乎停止响应并且不允许按下任何新的输入/按钮。

我认为问题是我的 repeat/while 循环永远存在并且永远不会给其他任何事情发生的机会,因此其他更改 WasItCorrect 值的函数无法运行。作为一个刚刚开始学习 Swift 的 VisualBasic 6 程序员,我想我需要 DoEvents 的 Swift 版本。真的吗?

任何有关如何修复此代码的建议将不胜感激。

Wil*_*jay 6

您可以使用didSet变量的属性。每当值更改时都会调用它。

var i = 0 {
    didSet {
        print("Hello World.")
        if i == certainValue {
         // do something
        }
    }
}
Run Code Online (Sandbox Code Playgroud)