注册

环信receive的本地封装

使用环信一年多来,由于iOS环信的长链本地接收通过的是单例对象EaseMob的代理来实现的,但是由于OC中代理单一指向问题,导致多个使用环信的界面都需要设置代理,并且要在viewwillappear方法中设置,这样虽然能够实现需求,但很不友好。

最近在重构环信的本地封装,思路如下:
  1. 建立一个新的单例对象(该对象是EaseMob的Receive的进一步抽象)
  2. 新的单例对象是EaseMob单例的delegate
  3. 新的单例对象使用block来实现长链消息的本地handle
  4. 针对每一个接收代理方法建立private一个数组属性,每个数组的成员变量都是block(当delegate被调用,便利数组回执block)

 
经实测以上方法可行,并避免了在viewwillappear方法中加入冗余代码,影响效率。

1 个评论

赞!欢迎分享环信集成笔记,2017我们还将继续。

要回复文章请先登录注册