1

我正在使用新的 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 上运行良好,因此设置很好,但我不确定如何在 Objective-C 中使用“异步”代码(如果有的话)。我无法通过我的研究找到答案。

谢谢。

4

1 回答 1

1

根据SE-0297 与 Objective-C async方法的并发互操作性,自动获取添加的completionHandler参数。

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

于 2021-11-23T19:00:47.257 回答