ios - 子类化 JSQMessages 以添加 messageID 属性

标签 ios swift jsqmessagesviewcontroller

你好我正在使用 JSQMessagesViewcontroller 制作一个聊天应用程序,我需要向 JSQMessages 添加一个额外的属性来为每条消息提供一个 ID。而且我还需要覆盖第一个方便的 init 来使用这个函数:

self.JSQmessages.append(JSQCell(senderId: self.senderId,displayName: self.senderDisplayName, text: message.text))

这是他们的消息单元格的样子

public class JSQMessage : NSObject, JSQMessageData, NSCoding, NSCopying {
    public var senderId: String! { get }
    public var senderDisplayName: String! { get }
    @NSCopying public var date: NSDate! { get }
    public var isMediaMessage: Bool { get }
    public var text: String! { get }
    @NSCopying public var media: JSQMessageMediaData! { get }
    
public convenience init!(senderId: String!, displayName: String!, text: String!)
   
public init!(senderId: String!, senderDisplayName: String!, date: NSDate!, text: String!)
    
public convenience init!(senderId: String!, displayName: String!, media: JSQMessageMediaData!)
  
public init!(senderId: String!, senderDisplayName: String!, date: NSDate!, media: JSQMessageMediaData!)
}

我试过子类化,但我对 ios 开发真的很陌生,永远做不好。这是我目前所拥有的。

class JSQCell : JSQMessage {
var MessageId: String?
 required init(senderId: String!, displayName: String!, text: String!, MessageId: String!)



required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

如有任何帮助,我们将不胜感激。

最佳答案

您需要做的就是让您的消息对象符合“JSQMessageData”协议(protocol),然后您可以添加任意数量的自定义变量。我在这个问题中概述了它。 https://stackoverflow.com/a/38884743/5894123

关于ios - 子类化 JSQMessages 以添加 messageID 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38886712/

相关文章:

ios - 当我运行内置的 PhoneGap 应用程序时,来自 XCode 的“找不到开发人员磁盘镜像”消息

objective-c - 如何从 NSArray 获取特定长度的字符串?

string - Unicode 字符串插值

ios - 如何实现自定义JSQMessagesInputToolbar

ios - 如何使用 Appium 测试任何 iOS 应用程序

iphone - 当我在 TouchBegan 内部设置动画时,触摸丢失

ios - 如何快速为 uitableview 上提交的文本提供文本字段更改事件?

ios - 如何从 VNFaceObservation 边界框(Vision + ARKit)正确平移 X 轴

swift - 半屏ios swift中的JSQMessagesViewController

ios - 如何异步加载图片