我有一套复杂的数学,需要几秒钟(这是在速度更快的iphone上)。为了让用户保持兴趣并相信程序没有小睡,我需要实时更新标签/号码。
从历史上看,我会使用:
DispatchQueue.main.sync {...
但现在运行时线程1会出现错误。
所以我用:
DispatchQueue.global().async(execute: {
DispatchQueue.main.sync {
self.dateLabel.text = date1Formatter.string(from: newDate!)
// etc
}
})
惊喜,惊喜这不是实时更新的数字,只是在周期的最后。如何“同步”它?
最佳答案
你根本不应该调用main.sync。
只需调用DispatchQueue.main.async Ashley Mills即可:
DispatchQueue.global().async(execute: {
DispatchQueue.main.async {
self.dateLabel.text = date1Formatter.string(from: newDate!)
// etc
}
})