我正在努力处理 Swift 中的异步代码。如果没有互联网连接,我必须禁用 2 个按钮。我在 2 个不同的函数中有 2 个 DispatchQueue.main.async 调用。其中 1 个可以工作,但另一个不会禁用该按钮(好处是您可以单击该按钮,但不会发生任何事情)。我正在 iPhone 上测试我的代码,因为模拟器无法正确运行我正在使用的 SDK。
所有这些函数看起来都是这样的(这是最后一个不起作用的函数):
public func disableButton2(_ check: Bool) {
DispatchQueue.main.async{
self.button2.isEnabled = check
}
最佳答案
我用过这个,效果很好
DispatchQueue.main.asyncAfter(deadline: .now() + delayInSeconds) { [weak self] in
guard let self = self else {
return
}
试试这个你就会得到结果。
关于swift - 为什么 DispatchQueue.main.async 在 Swift 应用程序中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58586227/