实例方法几乎匹配可选要求
Instance method nearly matches optional Requirement
我在 swift 中有一个 class,它实现了用 objective-c 编写的 SRWebSocketDelegate
协议。当我尝试实现它的可选方法 webSocketDidOpen
时,我收到以下警告:
此外,当我 运行 我的代码时,没有调用 webSocketDidOpen 的实现,代码直接转到 webSocket(_ webSocket: SRWebSocket, didReceiveMessageWith string: String)
如何实现我在 Objective-C 中编写的协议的可选方法并摆脱这些警告?
提前致谢!
SRWebSocket.h
被注释为 NS_ASSUME_NONNULL_BEGIN
,因此默认情况下所有值都是 nonnull
。这意味着:
- (void)webSocketDidOpen:(SRWebSocket *)webSocket;
导入为:
func webSocketDidOpen(_ webSocket: SRWebSocket)
但是你实现了:
func webSocketDidOpen(_ webSocket: SRWebSocket!)
SRWebSocket
与 SRWebSocket!
不是同一类型。删除 !
。这很可能是重命名 fixit 将为您做的。
我在 swift 中有一个 class,它实现了用 objective-c 编写的 SRWebSocketDelegate
协议。当我尝试实现它的可选方法 webSocketDidOpen
时,我收到以下警告:
此外,当我 运行 我的代码时,没有调用 webSocketDidOpen 的实现,代码直接转到 webSocket(_ webSocket: SRWebSocket, didReceiveMessageWith string: String)
如何实现我在 Objective-C 中编写的协议的可选方法并摆脱这些警告?
提前致谢!
SRWebSocket.h
被注释为 NS_ASSUME_NONNULL_BEGIN
,因此默认情况下所有值都是 nonnull
。这意味着:
- (void)webSocketDidOpen:(SRWebSocket *)webSocket;
导入为:
func webSocketDidOpen(_ webSocket: SRWebSocket)
但是你实现了:
func webSocketDidOpen(_ webSocket: SRWebSocket!)
SRWebSocket
与 SRWebSocket!
不是同一类型。删除 !
。这很可能是重命名 fixit 将为您做的。