我是 Swift 的初学者,所以这就是我等待布尔变量为 true 的方式:
while (boolVar == false) {}
我知道最终,通过另一种方法,这个变量将被设置为 true。有没有更好的方法来实现上述目标?我不确定这是否是最优雅和/或最有效的方式。
简单快捷的方法是使用
didSet
var boolVar:Bool = false {
didSet {
if boolVar {
// do job
}
}
}
这个怎么样
func waitForFinish(completion: @escaping () -> Void) {
DispatchQueue.global().async {
while !isFetched {
// Wait for a short period of time before checking the flag again
print("waiting fetch to finish....")
usleep(100_000) // Sleep for 100 milliseconds (adjust as needed)
}
DispatchQueue.main.async {
completion()
}
}
}