我目前正在创建一个应用程序,它可以在viewDidLoad方法上启动一个非常长的任务。它的本质是停止视图加载所有延长的时间段,有时会导致应用程序崩溃。因此,我需要能够在后台处理此特定任务,以便视图可以立即加载,然后在后台完成任务并在完成后更新视图。有人知道怎么做吗?
答案 0 :(得分:1)
尝试使用与此类似的GCD:
let backgroundQueue = dispatch_get_global_queue(CLong(DISPATCH_QUEUE_PRIORITY_HIGH), 0)
dispatch_async(backgroundQueue) {
// Do your stuff on global queue.
dispatch_async(dispatch_get_main_queue(), { () -> Void in
// After finish update UI on main queue.
})
}
或者您可以使用NSOperationQueue。在WWDC 2105上非常好的谈论它。 https://developer.apple.com/videos/wwdc/2015/?id=226