- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 swift 的新手 :D,正在使用 JSQMessagesViewController 开发一个简单的聊天应用程序。我阅读并遵循了 JSQMessagesViewController 示例项目 ( https://www.syncano.io/blog/create-ios-chat-app-part1/ ),但我的代码出现错误。
class ChatRoomViewController: JSQMessagesViewController {
let incomingBubble = JSQMessagesBubbleImageFactory().incomingMessagesBubbleImageWithColor(UIColor(red: 10/255, green: 180/255, blue: 230/255, alpha: 1.0))
let outgoingBubble = JSQMessagesBubbleImageFactory().outgoingMessagesBubbleImageWithColor(UIColor.lightGrayColor())
var messages = [JSQMessage]()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.setup()
self.addDemoMessages()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func reloadMessagesView() {
self.collectionView?.reloadData()
}
func gotoReserve() {
let nextViewController = ReserveViewController(nibName: "ReserveViewController", bundle: nil)
self.navigationController!.pushViewController(nextViewController, animated: true)
}
}
//MARK - Setup
extension ChatRoomViewController {
func addDemoMessages() {
let message = JSQMessage(senderId: "zzz", displayName: "aaa", text: "asasd")
self.messages.append(message)
self.reloadMessagesView()
}
func setup() {
self.senderId = "user"
self.senderDisplayName = "user"
}
}
//MARK - Data Source
extension ChatRoomViewController {
override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return self.messages.count
}
override func collectionView(collectionView: JSQMessagesCollectionView!, messageDataForItemAtIndexPath indexPath: NSIndexPath!) -> JSQMessageData! {
let data = self.messages[indexPath.row]
return data
}
override func collectionView(collectionView: JSQMessagesCollectionView!, didDeleteMessageAtIndexPath indexPath: NSIndexPath!) {
self.messages.removeAtIndex(indexPath.row)
}
override func collectionView(collectionView: JSQMessagesCollectionView!, messageBubbleImageDataForItemAtIndexPath indexPath: NSIndexPath!) -> JSQMessageBubbleImageDataSource! {
let data = messages[indexPath.row]
switch(data.senderId) {
case self.senderId:
return self.outgoingBubble
default:
return self.incomingBubble
}
}
override func collectionView(collectionView: JSQMessagesCollectionView!, avatarImageDataForItemAtIndexPath indexPath: NSIndexPath!) -> JSQMessageAvatarImageDataSource! {
return nil
}
}
//MARK - Toolbar
extension ChatRoomViewController {
override func didPressSendButton(button: UIButton!, withMessageText text: String!, senderId: String!, senderDisplayName: String!, date: NSDate!) {
let message = JSQMessage(senderId: senderId, senderDisplayName: senderDisplayName, date: date, text: text)
self.messages += [message]
self.finishSendingMessage()
}
override func didPressAccessoryButton(sender: UIButton!) {
}
}
当我运行它时,错误信息说
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[JSQMessage messageHash]: unrecognized selector sent to instance 0x7fdf0a6e1f60'
应用终止。
但是删除后运行良好
self.addDemoMessages()
viewDidLoad() 中的代码。所以我猜这段代码发生了错误,但我不知道如何修复 :( 我该如何修复它?
最佳答案
当我对 JSQMessage
对象进行子类化时,我遇到了类似的问题。如果您这样做,您只需要确保为消息数据实现 has。我只需要将此方法添加到我的 message
对象
func messageHash() -> UInt {
return UInt(self.hash)
}
希望对您有所帮助👻
关于ios - NSInvalidArgumentException 与使用 JSQMessagesViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36370723/
我正在开发一个使用 JSQMessagesViewController 库的项目。有没有人成功地为打字指示器设置动画,如果是这样,他们可以分享他们的方法吗? 谢谢! 最佳答案 我参加聚会迟到了,但因为
如何添加图像发送者和接收者用户 添加添加组日期 show this image 最佳答案 您的问题有几个部分。如果您能够提供您尝试过的任何事情,这样我们就知道如何最好地帮助您,这也会很有帮助。项目
我正在使用 JSQMessagesViewController 和 Firebase 制作一个小型聊天应用程序。我不知道如何在此应用程序中添加工具栏。我已经使用过这个教程:https://www.ra
我目前的观点是: 我希望允许在聊天中显示用户的用户名,就像示例中的那样: 必须使用什么方法才能实现这一点? 最佳答案 你只需要 如果您查看该项目的演示,他们会使用 JSQMessagesAvatarI
我在 Objective-C 中的项目使用 JSQMessagesViewController 进行 Firebase 聊天,但气泡图像不附带消息。JSQMessagesViewController
我正在开发一个聊天应用程序,我有这个 现在的问题是如何在演示中像这样在消息气泡顶部显示用户名? https://raw.githubusercontent.com/jessesquires/JSQMe
我正在使用 open source messaging UI library对于我正在构建的应用程序。当用户开始新的对话时,我希望“聊天 View ”出现时键盘已经打开并且光标位于文本字段上(类似于大
我正在尝试导入 JSQMessagesViewController: import JSQMessagesViewController 它给了我错误“没有这样的模块”。我在网上看到很多人遇到这个问题,
我按照这个基本教程开始使用 JSQMessagesViewController: https://www.raywenderlich.com/122148/firebase-tutorial-real
我正在尝试创建一个消息传递应用程序,并希望为此使用任何现有的消息传递库。我找到了 IOS 的 Jsqmessagesiviewcontroller 库,它是开源的并且非常容易使用。但是,我找不到适用于
我正在使用 JSQMessagesViewController 发送和接收消息。它适用于文本消息。 是否可以使用 JSQMessagesViewController 框架发送带有附加图像文件的文本消息
我正在使用 swift framework我需要能够在消息文本字符串中包含一个# like 标记。如果用户发送的消息包含以 # 为前缀的代码,例如:#t3Us9K,那么单个“单词”需要是所有用户都可以
我正在使用 JSQMessagesViewController 向我的应用添加聊天功能。我将使用深色主题,并将聊天设置为黑色,除了发送消息栏。我一直无法弄清楚如何改变它的颜色(见下面的截图)。谁能告诉
我正在努力将导航栏添加到 JSQMessagesViewController。是否可以在界面生成器中执行此操作,或者我是否必须以编程方式创建导航栏? 当尝试使用 IB 执行此操作时,导航栏在运行时不可
我正在尝试使用容器 View Controller 自定义 JSQMessagesViewController。我在我的父 View Controller 中添加了 header ,在容器 View
我正在使用 JSQMessagesViewController 开发一个应用程序。但是在 collectionView 中存在消息气泡对齐不规则顺序的问题。 这是截图 代码如下: import UIK
我从这里了解到link您可以通过覆盖此方法来自定义 JSQMessagesViewController 库的单元格: override func collectionView(collectionVi
我正在尝试导入 JSQMessagesViewController: import JSQMessagesViewController 它给了我错误“没有这样的模块”。我在网上看到很多人遇到这个问题,
我正在使用 JSQMessagesViewController,但我希望传出消息为白色。我能够更改文本颜色,因此传出消息文本颜色为黑色,而传入消息文本为白色。但是,无论何时发送链接,在传出端,链接文本
我有一个 Swift 项目,我正在尝试在其中使用 JSQMessagesViewController。我已经使用 cocoapods 安装框架并使用 swift import 语句导入它。 impor
我是一名优秀的程序员,十分优秀!