获得以下错误:此应用程序正在从后台线程

时间:2016-06-26 16:45:55

标签: ios swift2 dispatch-async

我用这段代码得到了这个警告。 如果有更新,我会在后台检查。然后提出警报。 显然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()
                }
            })

1 个答案:

答案 0 :(得分:1)

在iOS中,所有UI代码必须在主线程上运行。您正在调度后台线程以执行更新检查,这很好,但后来尝试从同一个后台线程更新UI,这导致您看到的错误。解决方案是在第一个中添加另一个dispatch_async,将调用包装到self.showAlertForUpdate(),而是调度到主队列(dispatch_get_main_queue(...)。