【发布时间】:2022-01-02 06:02:30
【问题描述】:
我正在使用新的 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 一起使用。我的研究找不到这个问题的答案。
谢谢。
【问题讨论】:
-
根据github.com/apple/swift-evolution/blob/main/proposals/…,Obj-C中的方法应该叫
updateStatusCompletionHandler:或类似的东西。 -
行得通! Xcode 自动完成功能不会在下拉列表中列出它,但它确实有效!如果您将其作为答案提交,我可以将其标记为这样。
标签: swift objective-c swift5.5