不支持并发的函数中的“async”调用swift ios Xcode async/await

不支持并发的函数中的“async”调用swift ios Xcode async/await,ios,swift,xcode,macos,async-await,Ios,Swift,Xcode,Macos,Async Await,我正在尝试在Swift 5.5中使用async/Wait。我有我的异步函数,但每当我尝试调用它时,都会出现以下错误: 不支持并发的函数中的“async”调用 下面是代码示例: 阶级斗争{ func getSomethingLater\uunumber:Double async->String{ //测试-睡眠3秒钟,然后返回 Thread.sleepforTimeInterval:3 return Stringformat:>>>%8.2f这里的答案是必须从异步上下文调用await getSom

我正在尝试在Swift 5.5中使用async/Wait。我有我的异步函数,但每当我尝试调用它时,都会出现以下错误:

不支持并发的函数中的“async”调用

下面是代码示例:

阶级斗争{ func getSomethingLater\uunumber:Double async->String{ //测试-睡眠3秒钟,然后返回 Thread.sleepforTimeInterval:3
return Stringformat:>>>%8.2f这里的答案是必须从异步上下文调用await getSomethingLater。这意味着要更改:

让结果=等待tryThis.getSomethingLater3.141592653589793238462 打印结果:\result 为此:

异步的{ 让结果=等待tryThis.getSomethingLater3.141592653589793238462 打印结果:\result } 所以整个事情变成了:

阶级斗争{ func getSomethingLater\uunumber:Double async->String{ //测试-睡眠3秒钟,然后返回 Thread.sleepforTimeInterval:3
return Stringformat:>>>%8.2f由于Swift中尚不支持顶级等待,即全局范围内的代码,因此产生了原始错误。 该错误只是意味着您需要为异步函数提供一个异步上下文,如使用async、detached或asyncDetached,具体取决于您想要的行为

独立的{ 让结果=等待tryThis.getSomethingLater3.141592653589793238462 打印结果:\result } 然而,当顶级wait最终被提出、实现和支持时,您的代码片段应该可以在将来工作。 作为async/await最初提案的一部分,提到了顶级await支持