我用这段代码得到了这个警告。 如果有更新,我会在后台检查。然后提出警报。 显然Xcode和iOS不喜欢我的想法......任何想法?
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
if CheckAppUpdate().appUpdateAvailable("http://itunes.apple.com/lookup?id=xxxxxxxxxxxxx") == true {
self.showAlertForUpdate()
}
})
答案 0 :(得分:1)
在iOS中,所有UI代码必须在主线程上运行。您正在调度后台线程以执行更新检查,这很好,但后来尝试从同一个后台线程更新UI,这导致您看到的错误。解决方案是在第一个中添加另一个dispatch_async
,将调用包装到self.showAlertForUpdate()
,而是调度到主队列(dispatch_get_main_queue(...
)。