后台在swift中处理viewDidLoad上的一项艰巨任务

时间:2015-07-01 11:12:35

标签: ios swift parallel-processing grand-central-dispatch

我目前正在创建一个应用程序,它可以在viewDidLoad方法上启动一个非常长的任务。它的本质是停止视图加载所有延长的时间段,有时会导致应用程序崩溃。因此,我需要能够在后台处理此特定任务,以便视图可以立即加载,然后在后台完成任务并在完成后更新视图。有人知道怎么做吗?

1 个答案:

答案 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