Swift类型检查器拒绝具有类要求作为类类型的协议

问题描述 投票:1回答:1

这是关于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'是类类型

我不确定我在这里缺少什么,并希望指点!

swift rx-swift
1个回答
0
投票

尝试使用@objc,如下所示:

@objc public protocol WebSocketClient : AnyObject {
    ---
}
© www.soinside.com 2019 - 2024. All rights reserved.