从 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:
。
我正在使用新的 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:
。