2016-07-29 3 views
0

画像を表示するのにJSQMessagesViewController、バックエンドにFirebaseを使用してチャットアプリを構築しています。
テキストメッセージのみを使用するとクラッシュすることなくアプリが動作しますが、フォトメッセージを追加するとアプリが動作します。写真のメッセージはコレクションビューに追加されますが、写真のメッセージを追加しようとすると、私のアプリはfinishSendingMessage()にクラッシュします。JSQMessages:フォトメッセージを使用すると、アプリがクラッシュする

すべての最初のクロスチェック、ユーザーのSENDERID & SENDERNAMEがnilでないのファースト):)

Function

Error

Console

+0

なぜあなたはあなたの 'addMediaMessage()'内で 'finishedRecivingMessageAnimated(true)'を呼び出すのですか?トップレベルで受け入れられるように関数をプルしないのはなぜですか?それはここであなたを助けるかもしれません。また、ここであなたのロジックを見ても、実際にはファイアベースにメディアアイテムを保存しているとは思われません。 'text'と' senderID'だけを保存しています。あなたのデータはローカルのメッセージインスタンスに追加されています。 –

+0

どうしたの? –

答えて

1

に画像を変換するようにしてください

override func didPressAccessoryButton(sender: UIButton!) { 
     print("imageTapped") 
    } 

を与える方法を実装しています。私の問題があった。

- 追加>メディアメッセージが(うまく働いた) - >テキストメッセージは、(アプリがクラッシュした)だけメディアメッセージの後に

を追加し、私は私の問題は、のための私のセル内のコードのこの部分に嘘をついたことがわかりましたindexPathのアイテム

let message = messages[(indexPath as NSIndexPath).item] 
    if message.senderId == senderId { 
     cell.textView!.textColor = UIColor.white 
    } else { 
     cell.textView!.textColor = UIColor.black 
    } 

私はこのコードをコメントアウトして、すべて正常に機能します。

0

1を助けてください。

2)また、finishSendingMessage()の行をコメントでき、JSQMessagesで使用可能なreloadMessage()を使用すると動作します。

3)ダニエルは、関数内でfinishedRecivingMessageAnimated(true)を呼び出す必要はないと言っていました。

6

crash.The最初のものを停止させるための2つの方法があるがviewdidload self.inputToolbar.contentView.leftBarButtonItem =ゼロ でこのコードを設定することで、このコードは、左側にある画像の添付ボタンを隠しメッセージビュー。 他の方法は、ライブラリはまた、私は同様の問題を通過して、上の答えのどれも助けなかったNSData

関連する問題