我有一个按钮链接到一个IBAction,大约需要5-10秒才能完成。在运行IBAction函数时,我希望在视图/窗口中打印进度消息。唯一打印的消息是最后一条,它在IBAction完成后打印(即按钮不是蓝色的)。当我在调试器中遍历该函数时,在退出该函数(即按钮不是蓝色)之前,没有任何消息是可见的。
知道如何在执行回调时更新窗口吗?
发布于 2017-11-11 22:47:10
将IBAction逻辑嵌入到后台队列中:
DispatchQueue.global(qos: .background).async {
// background code
}
每当您需要在视图/窗口中打印进度时,将该部分嵌入其中:
DispatchQueue.main.async {
// user interface code
}
通常,您可能希望尝试以下操作:
DispatchQueue.global(qos: .background).async {
//background code
DispatchQueue.main.async {
//your main thread
}
}
https://stackoverflow.com/questions/47243502
复制相似问题