注册

环信IM会话列表和聊天界面修改头像和昵称

如何修改会话列表和聊天界面的头像和昵称?


方法简单,但这里先说明一下设计思路:

MVVM

Model view viewModel

思路明确后,我们需要拿到其中的viewModel,然后修改其中的值.




会话列表控制器和viewModel



聊天控制器和viewModel


如果我们不考虑其中的结构/思路/思想,单纯为了解决问题,那么上述截图已经可以解决问题了.


我的理解:
为什么返回的viewModel一定是遵循某协议的?



我们正常理解的协议是:制定协议,指定委托,实现协议方法.

小了!格局小了!

当我思考上面截图这个协议之后.才明白,这里的协议是为了要求子类遵循标准.

这里协议本意并非是为了让实现什么,而是为了限定参数类型/参数名.是对数据模型的一种约束.

对于一个类型,无论是这个类型持有的方法还是属性,都是其特有的特点,既然是特点,便可继承.而这些方法啊,属性啊,不都是对此类型的一种约束吗?所以,我们可以看做 类型持有其特有的属性和方法,一些属性和一些方法约束了某一个类型.

如果同时了解java的同学都知道.java中有一个类型关键字为interface,我们称之为接口类,抽象类的一种,那么本意指的是,它也是一个类,只是无法实例化.

回头再看oc语言中的protocol,不就是java中的interface吗?

看到如此高质量的demo,使我的技术提升很大.多看大神的代码和多思考其思路,都是学习机会.

0 个评论

要回复文章请先登录注册