iOS---融云即时通讯---自定义消息

iOS---融云即时通讯---自定义消息,第1张

注册消息

注册消息共分为四步。

(1)自定义消息集成自RCMessageContent

(2)遵循RCMessageCoding协议

RCMessageCoding 主要有三个功能:

摘要

(3) 内容摘要协议

协议原型:

RCMessageContentView 主要有一个功能:

设置消息摘要:

开发者在进行完自定义消息类后,需要在 SDK init 之后,注册此自定义消息类。

开发者可根据自己的业务需求是否需要显示用户信息来选择继承消息 Cell。

类名:

1

结构图:

控件需要添加在 baseContentView 上,建议在 baseContentView 上方预留 10

类名:

1

结构图:

控件需要添加在 messageContentView 上,根据需求在画 Cell 视图布局的时候调整 messageContentView 的 frame ,如果是接收方,只需要修改 messageContentView 的 width 和 height ,如果是发送方,需要修改 messageContentView 的 x 、 width 和 height 。

开发者需要在 Cell 的初始化中布局,并重写下面方法来返回 Cell 的 Size 。当显示自定义消息时,必须实现该方法来返回 Cell 的 Size 。

注册消息 Cell

SDK 需要开发者在会话页面注册您定义的消息 Cell 并绑定您的消息类型

①在自定义cell中添加tap点击事件,

②实现tap事件,在tap事件中判断代理是否实现了如下方法,

③调用SDK中的cell点击事件回调

在如上方法中添加自定义cell的点击事件

会。

分类:Category(类目,类别) (OC有)

命名:原来的类+类别名(原来的类名自动生成,只要写后面的类别名,一般以模块名为名。比如原来类 Person,新建分类 Ct,新建的分类名为 Person+Ct )

作用: 在不改变原来类的内容的情况下,可以给原来的类添加一些新的方法。

注意:

1)分类只能增加方法,不能增加成员变量。

2)分类方法的实现中,可以访问原来类中的成员变量。

3)分类可以重写原来类的方法。但是会覆盖原来类的方法(一般不会再分类当中重写原来类的方法)。

4)调用优先级:分类优先(最后参与编译的分类会优先调用)。

简单的判断方法:

每个对象都有一个isa,这个isa里面储存了很多关于类对象的一些信息,所以当这个对象编译的时候,程序会通过isa来查看这个对象的类型,即执行的时候再识别叫动态类型识别。

这个对象里面的方法其实是被封装在SEL里面(有方法ID和内容),当外面利用方法传递消息的时候,先把这个方法ID化,然后找相同ID的方法,找到了就调用,找不到就通过isa里存储的信息往父类找,最终找不到,就报错。(相同的方法签名=相同的ID)

)每个对象都可以调用类对象,如果它们是一个类出来的,它们的类对象也是一样的,所以判断对象是否属于同一个类,就判断它们的类对象是否相同,如下:

结果

判断某个对象是否属于某一个类,如下:

结果是:

以上就是关于iOS---融云即时通讯---自定义消息全部的内容,包括:iOS---融云即时通讯---自定义消息、ios分类方法会覆盖原方法么、iOS 如何判断对象是什么类等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9554548.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存