我正在使用新的 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 一起使用(如果有的話)。我無法通過我的研究找到答案。
謝謝。
uj5u.com熱心網友回復:
根據SE-0297 Concurrency Interoperability with Objective-C async方法completionHandler自動獲取添加的引數。
因此,方法名稱應該類似于updateStatusCompletionHandler:Objective-C 中的名稱。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/365196.html
上一篇:Objective-C的[noop:]函式在哪里定義?
下一篇:使用http協議時的通用鏈接問題
