从 Objective-C 调用 Swift 异步函数

Calling Swift async function from Objective-C

我正在使用新的 Swift 5.5 功能来创建异步函数:

@MainActor
@objc func updateStatus() async {
    /// do async stuff...
}

但是当我尝试从 Objective-C 代码中调用此方法时,它不会出现在自动完成中,并且如果我尝试构建它会出现构建错误:

if (@available(iOS 15.0, *)) {
     CJSubscriptionStatusCheck *backgroundStatusCheck = [[CJSubscriptionStatusCheck alloc] init];
     [backgroundStatusCheck updateStatus]; // No visible @interface for 'CJStatusCheck' declares the selector 'updateStatus'
}

我的其他 swift 代码与 Objective-C 一起工作正常,所以设置很好,但我不确定 'async' 代码如何(如果有的话)与Objective-C。我的研究找不到这个问题的答案。

谢谢。

根据 SE-0297 Concurrency Interoperability with Objective-C async 方法自动添加 completionHandler 参数。

因此方法名称应该类似于 Objective-C 中的 updateStatusCompletionHandler: