我有一个链接到IBAction的按钮,大约需要5-10秒才能完成。 当IBAction函数正在运行时,我想在视图/窗口中打印进度消息。 打印的唯一消息是最后一个消息,它在IBAction完成后打印(即按钮不是蓝色)。 当我在调试器中单步执行该函数时,在我退出函数之前没有消息可见(即按钮不是蓝色)。
在执行回调时如何更新窗口?
答案 0 :(得分:1)
将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
}
}