美文网首页
环信会话列表和聊天界面修改头像和昵称

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

作者: 超级黑 | 来源:发表于2021-06-21 16:01 被阅读0次

    事情是这样的,本身我们公司项目很简洁,原计划自定义cell完事,也确实是这么做的.

    但这段时间项目结束之后,突然想到看看环信demo中是如何实现会话列表界面的.

    这个界面本身并不难,古人曾说, 一千个读者就有一千个哈姆雷特,看看别人的哈姆雷特也挺好嘛

    意外之喜.阅读后,让我对协议有了一个更深层次的理解.

    1.抛出问题

    2.我的理解

    首先我们来抛出一个问题:

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

    (我和我们公司安卓工程师探讨过,发现思想完全一致,所以如果你是安卓工程师遇到此问题了,也可以阅读此文章,应该也可以解决你的问题)

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

    MVVM

    Model view viewModel

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

    会话列表控制器和viewModel 聊天控制器和viewModel

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

    我的理解:

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

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

    小了!格局小了!

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

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

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

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

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

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

    致敬环信大神!!!👍🏻👍🏻👍🏻

    相关文章

      网友评论

          本文标题:环信会话列表和聊天界面修改头像和昵称

          本文链接:https://www.haomeiwen.com/subject/idtosltx.html