gpt4 book ai didi

Swift 类型检查器拒绝将类要求作为类类型的协议(protocol)

转载 作者:行者123 更新时间:2023-11-28 07:37:21 24 4
gpt4 key购买 nike

这是关于在 https://github.com/RxSwiftCommunity/RxStarscream/pull/23 中遇到的错误.

我正在尝试泛化一个类型,这样我就可以模拟它所基于的类。这意味着我想从具体实现切换到协议(protocol)。

原来的类是这样的:

open class WebSocket : NSObject, StreamDelegate, WebSocketClient, WSStreamDelegate { ... }
...
}

我想用这个协议(protocol)替换它,WebSocket 已经扩展了:

public protocol WebSocketClient : AnyObject {
...
}

这意味着我要替换

public class RxWebSocketDelegateProxy: DelegateProxy<WebSocket, NSObjectProtocol>, ... {
...
}

public class RxWebSocketDelegateProxy: DelegateProxy<WebSocketClient, NSObjectProtocol>, ... {
...
}

所有这些看起来都很简单 — WebSocketClient 提供了此处所需的所有功能。令人惊讶的是,我收到了错误消息

'DelegateProxy' requires that 'WebSocketClient' be a class type

我不确定我在这里遗漏了什么,希望得到指点!

最佳答案

像下面这样用 @objc 试试:

@objc public protocol WebSocketClient : AnyObject {
---
}

关于Swift 类型检查器拒绝将类要求作为类类型的协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53017568/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com