2017-07-19 54 views
1

我在迅速它實現SRWebSocketDelegate協議寫入目標c的類。當我嘗試實施它是可選的方法webSocketDidOpen,然後我得到以下警告: enter image description here實例方法幾乎匹配可選要求

此外,當我跑我的代碼webSocketDidOpen執行不獲取調用和代碼直接進入webSocket(_ webSocket: SRWebSocket, didReceiveMessageWith string: String)

如何我是否實現了用Objective-C編寫的協議的可選方法,並擺脫了這些警告?

在此先感謝!

+1

如果你選擇「重命名」修復它,會發生什麼? –

+0

@robmayoff,難道這不會使它成爲本地實例方法,而不是實現的SRWebSocketDelegate方法嗎? – Exception

+0

它已經不是協議實現;這就是警告告訴你的。 fixit正試圖使其符合要求。 –

回答

2

SRWebSocket.h註明了NS_ASSUME_NONNULL_BEGIN,所以默認所有值都是nonnull。這意味着,這樣的:

- (void)webSocketDidOpen:(SRWebSocket *)webSocket; 

導入爲:

func webSocketDidOpen(_ webSocket: SRWebSocket) 

但你實現:

func webSocketDidOpen(_ webSocket: SRWebSocket!) 

SRWebSocket是不一樣的類型SRWebSocket!。刪除!。這可能是重命名fixit會爲你做的。

+0

沒有意識到這是一個小問題。謝謝! – Exception

+0

如果羅布解決了您的問題,請點擊他答案旁邊的複選標記。 –

相關問題