我在swift中有一个类,它实现了用objective-c编写的SRWebSocketDelegate
协议。当我尝试实现它的可选方法webSocketDidOpen
时,我收到以下警告:
此外,当我运行我的代码时,没有调用webSocketDidOpen的实现,代码直接转到webSocket(_ webSocket: SRWebSocket, didReceiveMessageWith string: String)
如何实现我在Objective-C中编写的协议的可选方法,并消除这些警告?
提前致谢!
答案 0 :(得分:3)
SRWebSocket.h
已注释NS_ASSUME_NONNULL_BEGIN
,因此默认情况下所有值均为nonnull
。这意味着:
- (void)webSocketDidOpen:(SRWebSocket *)webSocket;
导入为:
func webSocketDidOpen(_ webSocket: SRWebSocket)
但你实施了:
func webSocketDidOpen(_ webSocket: SRWebSocket!)
SRWebSocket
与SRWebSocket!
的类型不同。删除!
。这可能是重命名fixit将为您做的。