JSQ消息 - Swift 3“didPressSendButton”

时间:2016-10-12 13:47:21

标签: swift jsqmessagesviewcontroller

我正在尝试与JSQ Message进行简单的聊天。
每当我使用发送按钮时,应用程序崩溃。
它在终端中运行良好,但在我希望它显示之后在视图中,我不断收到此消息:

  

由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'错误!在子类中未实现的必需方法。需要实现 - [JSQMessagesViewController didPressSendButton:withMessageText:senderId:senderDisplayName:date:]'

这是我的控制器:

controller 1/2 controller 2/2

2 个答案:

答案 0 :(得分:3)

使用:Swift 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()
    }

答案 1 :(得分:1)

  

感谢。有效。现在我只需弄明白,如何在BubbleImage中显示消息。任何想法????

删除“覆盖”字样时,Xcode错误消失。

但是,这会导致问题。

您必须覆盖每个方法。 请注意!,?和_。

使用:Swift 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
}