如何在Swift 3,Swift 4及更高版本中dispatch_sync

如何在Swift 3,Swift 4及更高版本中dispatch_sync,dispatch_async,dispatch_after等?

我在Swift 2.x(甚至1.x)项目中有很多代码,如下所示:

// Move to a background thread to do some long running workdispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
    let image = self.loadOrGenerateAnImage()
    // Bounce back to the main thread to update the UI    dispatch_async(dispatch_get_main_queue()) {
        self.imageView.image = image    }}

或者像这样的东西来延迟执行:

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(0.5 * Double(NSEC_PER_SEC))), dispatch_get_main_queue()) {
    print("test")}

或者Grand Central Dispatch API的各种其他用途......

现在我已经在Swift 3的Xcode 8(beta)中打开了我的项目,我得到了各种错误。其中一些提供修复我的代码,但并非所有修复产生工作代码。我该怎么办?


扬帆大鱼
浏览 1259回答 3
3回答

侃侃无极

在Xcode 8 beta 4不起作用......使用:DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {     print("Are we there yet?")}对于异步两种方式:DispatchQueue.main.async {     print("Async1")}DispatchQueue.main.async( execute: {     print("Async2")})
打开App,查看更多内容
随时随地看视频慕课网APP