Xcode报错:’async’ call in a function that does not support concurrency
Xcode报错:’async’ call in a function that does not support concurrency

Xcode报错:’async’ call in a function that does not support concurrency

在Swift中,如果在同步函数中使用 await(或调用async方法):

// 同步函数
private func runProcess() -> Bool {
let result = await withCheckedContinuation { cont in    // 使用 await

因为函数本身没有被声明为async,编译器就会发生报错。

'async' call in a function that does not support concurrency

解决方案

1、使用Task创建一个异步任务:

// 同步函数
private func runProcess() -> Bool {
    // 创建异步任务,Task内可以访问异步函数
    Task {
        let result = await withCheckedContinuation { cont in    // 使用 await
    }
}

2、函数声明为async,改为异步函数:

// 异步函数
private func runProcess() async -> Bool async {

当调用该函数时,使用Task:

Task {
    let value = await runProcess()
}
   

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开发者。

欢迎加入我们的 微信交流群QQ交流群,交流更多精彩内容!
微信交流群二维码 QQ交流群二维码

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注