質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

1584閲覧

swift HSQMessagesViewControllerでエラー

chNOBUNAGA

総合スコア41

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2017/02/26 04:33

メッセージアプリを作成しようとしましたが、sendボタンを押した後、
「Thread1: signal SIGABRT」

下記が、ファイルになります。

swift

1import UIKit 2import JSQMessagesViewController 3 4class ViewController: JSQMessagesViewController { 5 6 var messages: [JSQMessage]? 7 var incomingBubble: JSQMessagesBubbleImage! 8 var outgoingBubble: JSQMessagesBubbleImage! 9 var incomingAvatar: JSQMessagesAvatarImage! 10 var outgoingAvatar: JSQMessagesAvatarImage! 11 12 override func viewDidLoad() { 13 super.viewDidLoad() 14 15 //自分のsenderId, senderDisokayNameを設定 16 self.senderId = "user1" 17 self.senderDisplayName = "hoge" 18 19 //吹き出しの設定 20 let bubbleFactory = JSQMessagesBubbleImageFactory() 21 self.incomingBubble = bubbleFactory?.incomingMessagesBubbleImage(with: UIColor.jsq_messageBubbleLightGray()) 22 self.outgoingBubble = bubbleFactory?.outgoingMessagesBubbleImage(with: UIColor.jsq_messageBubbleGreen()) 23 24 //アバターの設定 25 self.incomingAvatar = JSQMessagesAvatarImageFactory.avatarImage(with: UIImage(named: "1.jpg")!, diameter: 64) 26 self.outgoingAvatar = JSQMessagesAvatarImageFactory.avatarImage(with: UIImage(named: "0.jpg")!, diameter: 64) 27 28 29 30 //メッセージデータの配列を初期化 31 self.messages = [] 32 33 } 34 35 override func didReceiveMemoryWarning() { 36 super.didReceiveMemoryWarning() 37 // Dispose of any resources that can be recreated. 38 } 39 40 //Sendボタンが押された時に呼ばれる 41 func didPressSendButton(button: UIButton!, withMessageText text: String!, senderId: String!, senderDisplayName: String!, date: NSDate!) { 42 43 //新しいメッセージデータを追加する 44 let message = JSQMessage(senderId: senderId, displayName: senderDisplayName, text: text) 45 self.messages?.append(message!) 46 47 //メッセジの送信処理を完了する(画面上にメッセージが表示される) 48 self.finishReceivingMessage(animated: true) 49 50 //擬似的に自動でメッセージを受信 51 self.receiveAutoMessage() 52 53 } 54 55 //アイテムごとに参照するメッセージデータを返す 56 func collectionView(collectionView: JSQMessagesCollectionView!, messageDataForItemAtIndexPath indexPath: NSIndexPath!) -> JSQMessageData! { 57 return self.messages?[indexPath.item] 58 } 59 60 //アイテムごとのMessageBubble(背景)を返す 61 func collectionView(collectionView: JSQMessagesCollectionView!, messageBubbleImageDataForItemAtIndexPath indexPath: NSIndexPath!) -> JSQMessageBubbleImageDataSource! { 62 let message = self.messages?[indexPath.item] 63 if message?.senderId == self.senderId { 64 return self.outgoingBubble 65 } 66 return self.incomingBubble 67 } 68 69 //アイテムごとにアバター画像を返す 70 func collectionView(collectionView: JSQMessagesCollectionView!, avatarImageDataForItemAtIndexPath indexPath: NSIndexPath!) -> JSQMessageAvatarImageDataSource! { 71 let message = self.messages?[indexPath.item] 72 if message?.senderId == self.senderId { 73 return self.outgoingAvatar 74 } 75 return self.incomingAvatar 76 } 77 78 //アイテムの総数を返す 79 override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 80 return (self.messages?.count)! 81 } 82 83 //返信メッセージを受信する 84 func receiveAutoMessage() { 85 Timer.scheduledTimer(timeInterval: 1, target: self, selector: Selector(("didFinishMessageTimer:")), userInfo: nil, repeats: false) 86 } 87 88 func didFinishMessageTimer(sender: Timer) { 89 let message = JSQMessage(senderId: "user2", displayName: "underscore", text: "Hello!") 90 self.messages?.append(message!) 91 self.finishReceivingMessage(animated: true) 92 } 93 94} 95 96

なぜでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

domonr

2017/02/27 02:07

エラーが発生しているのはどの行ですか?
guest

回答1

0

ベストアンサー

domon0501さんのおっしゃるとおり、エラーが発生している箇所は質問に含めたほうが、パっと質問だけ見て返事してくれる人がいると思いますよ〜(^o^)/

ご提示のコードで実行してみた所、

self.incomingAvatar = JSQMessagesAvatarImageFactory.avatarImage(with: UIImage(named: "1.jpg")!, diameter: 64)

の箇所でエラーになったので、「1.jpg」の数字が大文字になっているところとか、怪しいんじゃないでしょうか。

投稿2017/02/28 05:05

kanemotos

総合スコア163

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問