我正在尝试编写等待变量等于某个值的代码。这是我写的代码:
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 版本。真的吗?
任何有关如何修复此代码的建议将不胜感激。
您可以使用didSet变量的属性。每当值更改时都会调用它。
var i = 0 {
didSet {
print("Hello World.")
if i == certainValue {
// do something
}
}
}
Run Code Online (Sandbox Code Playgroud)