2016-11-27 14 views
0

私はSwift 3.0とXcode 8.0とJSQMessages 7.3.4を使用しています。SwiftオーバーライドメソッドdidPressSend

私はJSQMessagesViewControllerを実装しようとしています。具体的には、didPressSend関数をオーバーライドしようとしていますが、そのメソッドがそのスーパークラスのメソッドをオーバーライドしないと不平を言っています。

override func didPressSend(_ button: UIButton, withMessageText text: String, senderId: String, senderDisplayName: String, date: Date) { 
    print("working") 
} 

これはどういう考えですか?

Objective-Cではパラメータ5の型を表すことができないため、メソッドに@objのオーバーライドを使用することはできません。

答えて

0
override func didPressSend(_ button: UIButton?, withMessageText text: String?, senderId: String?, senderDisplayName: String?, date: Date?) { 
    // Check to make sure we are sending something no need for blank messages. 
    guard let text = text else { 
     return 
    } 
    print("working") 
    // add logic here. 
} 

練習安全なコードそこ:そこにはいくつかの微妙な違い、最も注目すべき力開封されたoptionalsがあることがわかります。

+0

こんにちはダニエル、これは私がconversation.smsNumberを削除する必要がありましたが、それは何ですか? – micyukcha

+0

これは私の変数です。私の悪い:) –

+0

私はバックエンドに自分のメッセージを投稿するために使用します。だから私はここでコメントを追加するコメントを追加バックエンドに投稿し、ローカルのメッセージのリストにメッセージを追加するメソッドがあります。 –

0

override func didpressと入力し、推奨された完了を受け入れることで、エラーを修正できます。

override func didPressSend(_ button: UIButton!, 
       withMessageText text: String!, 
          senderId: String!, 
        senderDisplayName: String!, 
           date: Date!) { 
    print("works") 
} 
+0

こんにちはムンディ、私はそれをしました(オートコンプリートと強制アンラッピングされたオプションを追加しました)が、それでも同じエラーが発生しています。 didPressAccessoryButtonのような他のメソッドは大丈夫です。スーパークラスがdidPressSendメソッドを選択しない理由についての他の考えは? – micyukcha

関連する問題