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