JMSGAbstractContent Class Reference

Inherits from NSObject
Conforms to NSCopying
Declared in JMSGAbstractContent.h

Overview

消息内容(抽象类)

所有消息内容的实体类,都直接或者间接继承这个类。很多 API 上使用这个抽象类作为类型。

有时候通过 API 得到的是这个抽象类型,需要基于消息的 contentType 属性来转型为相应的具体子类, 做进一步的动作。

// 转移到子类举例
JMSGAbstractContent *content = oneMessage.content;
if (oneMessage.contentType == kJMSGContentTypeText) {
JMSGTextContent *textContent = (JMSGTextContent *)content;
String text = textContent.text;
}

  extras

附加参数

@property (nonatomic, strong, readonly) NSDictionary *extras

Discussion

对某个类型的消息, 比如 VoiceContent, 可以附加参数以便用于业务逻辑

Declared In

JMSGAbstractContent.h

– addStringExtra:forKey:

增加一个字符串值类型的字段

- (BOOL)addStringExtra:(NSString *)value forKey:(NSString *)key

Parameters

value

新增键值对的值. String 类型.

key

新增键值对的键

Declared In

JMSGAbstractContent.h

– addNumberExtra:forKey:

增加一个数字值类型的字段

- (BOOL)addNumberExtra:(NSNumber *)value forKey:(NSString *)key

Parameters

value

新增键值对的值. Number 类型.

key

新增键值对的键

Declared In

JMSGAbstractContent.h

– toJsonString

调用此方法得到 JSON 格式描述的 Message Content

- (NSString *)toJsonString

Declared In

JMSGAbstractContent.h

– isEqualToContent:

判断消息内容是否相等

- (BOOL)isEqualToContent:(JMSGAbstractContent *JMSG_NULLABLE)content

Parameters

content

比较的内容对象

Discussion

对于媒体类的内容, 即使同样的内容, 每次也视为新的资源, 会生成不同的资源ID, 从而最终 content 不相等.

所有的子类都提供本方法.

Declared In

JMSGAbstractContent.h