等待布尔值变为“true”的更优雅的方式

问题描述 投票:0回答:2

我是 Swift 的初学者,所以这就是我等待布尔变量为 true 的方式:

while (boolVar == false) {}

我知道最终,通过另一种方法,这个变量将被设置为 true。有没有更好的方法来实现上述目标?我不确定这是否是最优雅和/或最有效的方式。

swift while-loop boolean
2个回答
4
投票

简单快捷的方法是使用

didSet

var boolVar:Bool = false {
    didSet {
       if boolVar {
          // do job
       } 
    } 
}

0
投票

这个怎么样

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()
            }
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.