2016-10-12 5 views
0

JSQメッセージと簡単なチャットをしようとしています。
送信ボタンを使用するたびに、アプリがクラッシュします。これは、端末で正常に働いていたが、私はそれがビューに表示されるように望んでいた後、私はこのメッセージを得続ける
JSQメッセージ - Swift 3 "didPressSendButton"

キャッチされない例外により「NSInternalInconsistencyException」、理由にアプリを終了:「エラー!サブクラスで実装されていない必須メソッド。実装する必要がある - [JSQMessagesViewController didPressSendButton:withMessageText:SENDERID:senderDisplayName:日付:]ここに

は私のコントローラです:

での作業

controller 1/2 controller 2/2

+0

は 'オフ取り除く'関数のパラメータを入力した後、彼らはNULL可能ではありません!。少なくとも最新のJSQMessagesViewControllerバージョン。 – user28434

+0

私はそれを試しましたが、助けになりませんでした。 –

+0

'JSQMessagesViewController'を⌘-クリックして 'didPressSendButton'がそこに定義されていることを確認できますか? – user28434

答えて

3

:スウィフト3.0 & JSQMessagesViewController 7.3.4

override func didPressSend(_ button: UIButton!, withMessageText text: String!, senderId: String!, senderDisplayName: String!, date: Date!) { 
     let message = JSQMessage(senderId: senderId, senderDisplayName: senderDisplayName, date: date, text: text) 
     //ex: self.messages.append(message!) 
     self.finishSendingMessage() 
    } 
+0

ありがとうございます。出来た。今私はちょうどBubbleImageのメッセージを表示する方法を理解しなければなりません。何か案は ???? –

+0

申し訳ありませんが、私は考えていませんが、答えを受け入れてください。 – norbDEV

1

ありがとう。出来た。今私はちょうどBubbleImageのメッセージを表示する方法を理解しなければなりません。何か案は ????

「オーバーライド」単語を削除すると、Xcodeエラーが消えます。

しかし、これは問題を引き起こします。

各メソッドをオーバーライドする必要があります。 などのように注意してください!と_。作業

:スウィフト3.0 & JSQMessagesViewController 7.3.4

// MARK: - JSQMessage 
override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
    code 
} 

override func collectionView(_ collectionView: JSQMessagesCollectionView!, avatarImageDataForItemAt indexPath: IndexPath!) -> JSQMessageAvatarImageDataSource! { 
    code 
} 

override func collectionView(_ collectionView: JSQMessagesCollectionView!, messageBubbleImageDataForItemAt indexPath: IndexPath!) -> JSQMessageBubbleImageDataSource! { 
    code 
} 

override func collectionView(_ collectionView: JSQMessagesCollectionView!, messageDataForItemAt indexPath: IndexPath!) -> JSQMessageData! { 
    code 
} 

override func didPressSend(_ button: UIButton!, withMessageText text: String!, senderId: String!, senderDisplayName: String!, date: Date!) { 
    code 
}