我目前正在爲iOS開發一個使用XMPPFramework和JSQMessagesViewController的聊天應用程序,我對所有這些都很陌生,所以請耐心等待。將傳入消息追加到ChatViewController collectionview(XMPPFramework + JSQMessagesViewController)
我得到了XMPP服務器啓動並運行,我可以看到通過控制檯日誌發送和傳入消息,我試圖做的是將傳入消息追加/顯示到collectionView UI(JSQMessagesViewController)。
到目前爲止,我所做的就是調用從應用程序的委託 一個視圖 - 控制FUNC這裏是在應用程序委託的代碼輸入的消息
func xmppStream(_ sender: XMPPStream!, didReceive message: XMPPMessage!) {
print("Did received message \(message)")
if message.isChatMessageWithBody() {
chatView.receiveMessage(passMessage: message.stringValue)
}
}
的視圖控制器方法
func receiveMessage(passMessage: String!) {
let receivedMessage = JSQMessage(senderId: senderId, displayName: senderDisplayName, text: passMessage)
self.messages.append(receivedMessage!)
self.finishReceivingMessage(animated: true)
JSQSystemSoundPlayer.jsq_playMessageReceivedSound()
}
這種方法,應用程序在收到消息時崩潰,並且我從senderId獲得意外的nil值錯誤。 我似乎無法解決這個問題。 請告知 謝謝。
我認爲你應該嘗試從github的JSQ例子。您需要在jsqmessagesviewcontroller子類中實現一些委託方法。 – dichen