这是关于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'是类类型
我不确定我在这里缺少什么,并希望指点!
尝试使用@objc,如下所示:
@objc public protocol WebSocketClient : AnyObject {
---
}