I have a class in swift which implements SRWebSocketDelegate
protocol written in objective-c. When I try to implement it's optional method webSocketDidOpen
, then I get the following warning:
Also, when I run my code the implementation for webSocketDidOpen is not getting called and the code directly goes to webSocket(_ webSocket: SRWebSocket, didReceiveMessageWith string: String)
How do I implement the optional methods of my protocol written in Objective-C and also get rid of these warnings?
Thanks in advance!
SRWebSocket.h
is annotated NS_ASSUME_NONNULL_BEGIN
, so by default all values are nonnull
. That means that this:
- (void)webSocketDidOpen:(SRWebSocket *)webSocket;
Is imported as:
func webSocketDidOpen(_ webSocket: SRWebSocket)
But you implemented:
func webSocketDidOpen(_ webSocket: SRWebSocket!)
SRWebSocket
is not the same type as SRWebSocket!
. Remove the !
. This is likely what the rename fixit will do for you.