“dispatch_get_main_queue()”的使用存在歧义

14

我该如何使用DispatchQueue类替换以下iOS的Swift 3代码?这是旧的Swift 3代码,最新的Xcode无法将其转换为Swift 5。

dispatch_async(dispatch_get_main_queue()) { () -> Void in
  // code
}

它给我一个错误,提示

Ambiguous use of 'dispatch_get_main_queue()'

针对dispatch_get_main_queue()

下面的答案似乎是正确的答案,我想使用它,但能有人告诉我这是正确的吗?Swift version

它说要使用以下代码:

DispatchQueue.global(qos: .background).async {

    // Background Thread

    DispatchQueue.main.async {
        // Run UI Updates
    }
}

除了使用DispatchQueue,我还有什么其他替代方法来解决这个错误?


1
不是很相关,但这个 dispatch_sync 代码很可能比那个更旧,早于 Swift 3,其中引入了这种新的 DispatchQueue 语法。请参阅 WWDC 2016 年的 “使用 Swift 3 中的 GCD 进行并发编程” - Rob
1个回答

6

是的,这是正确的。这是新的更新语法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接