这与https://github.com/RxSwiftCommunity/RxStarscream/pull/23中遇到的错误有关。
我试图概括一个类型,所以我可以模拟它所基于的类。这意味着我想从具体实现转换为协议。
原始类如下:
open class WebSocket : NSObject, StreamDelegate, WebSocketClient, WSStreamDelegate { ... }
...
}
我想用该协议代替它,WebSocket
已经在扩展:
public protocol WebSocketClient : AnyObject {
...
}
这意味着我要替换
public class RxWebSocketDelegateProxy: DelegateProxy<WebSocket, NSObjectProtocol>, ... {
...
}
与
public class RxWebSocketDelegateProxy: DelegateProxy<WebSocketClient, NSObjectProtocol>, ... {
...
}
所有这些似乎都很容易-WebSocketClient
提供了这里所需的所有功能。令人惊讶的是,我收到错误消息
“ DelegateProxy”要求“ WebSocketClient”为类类型
我不确定我在这里缺少什么,并且会感谢指针!
答案 0 :(得分:0)
尝试使用 @objc ,如下所示:
@objc public protocol WebSocketClient : AnyObject {
---
}