我正在尝试编写等待变量等于某个值的代码。这是我写的代码:
var i = 0
for i in 1...10 {
playtrial()
repeat {
} while (WasItCorrect=="")
WasItCorrect = ""
}
这个想法是函数会调用playtrial,等到变量WasItCorrect有一个值(""除外),重置WasItCorrect,然后重复(总共10次)。 / p>
代码不会产生错误。然而,在完成plastral之后,程序似乎停止响应并且不允许任何新的输入/按钮按下。
我认为问题是我的repeat / while循环永远存在并且永远不会发生任何其他事情,因此其他更改WasItCorrect值的函数无法运行。作为一个刚开始学习Swift的VisualBasic 6程序员,我猜我需要Swift版本的DoEvents。这是真的吗?
非常感谢任何有关如何修复此代码的建议。
答案 0 :(得分:2)
您可以使用变量的didSet
属性。只要值发生变化,就会调用它。
var i = 0 {
didSet {
print("Hello World.")
if i == certainValue {
// do something
}
}
}