我已将我的大部分应用程序转换为 Swift。剩下的是一些 Objective-C 协议,以及一些应该使用 Swift 习惯用法代替 Objective-C 风格的代码。
我已经使用Typhoon完成了我的应用程序的组装。现在,在将其中一种协议转换为 Swift 之后,我注意到初始化程序不再是动态的(DI 库需要)。因此,我尝试将其显式标记为动态,但出现以下错误:
它抱怨第三个参数(我的 Swift 协议)永远不能作为 Objective-C 的一部分参与。这似乎是对 Swift/ObjC 互操作性的普遍限制。是在 ObjC 中定义协议并让 Swift 类实现它的唯一解决方案吗?
以下解决方案不起作用:
public protocol WeatherReportDao : NSObjectProtocol { //Extend NSObjectProtocol
}