《iOS底层原理文章汇总》
上一篇文章iOS-底层原理36-组件化介绍了组件化,本文介绍架构
1.架构MVC过程中的问题
![](https://img.haomeiwen.com/i4193251/069056e5e5b8da8d.png)
![](https://img.haomeiwen.com/i4193251/d6ba4484d26637af.png)
![](https://img.haomeiwen.com/i4193251/c8ceae2fba5f31e8.png)
![](https://img.haomeiwen.com/i4193251/af83334d8a7f5896.png)
2.架构VC解重:通过数据提供层,数据代理层,建立关系
![](https://img.haomeiwen.com/i4193251/a39f600f8aa50826.png)
3.MVP简单使用:UI和Model之间相互通讯通过代理隔离,协议接口驱动
I.协议
![](https://img.haomeiwen.com/i4193251/14ccb3f0c1ebf3dd.png)
II.设置代理遵循协议
![](https://img.haomeiwen.com/i4193251/7a7bd703866837f1.png)
III.model改变,UI改变,UI改变通过代理改变model
![](https://img.haomeiwen.com/i4193251/7cdc0477d74b1856.png)
![](https://img.haomeiwen.com/i4193251/2a603b49d651d1ab.png)
IV.以上Demo过于简单,若存在多个不同类型的cell和复杂的页面呢,协议胶水代码非常多,直播复杂页面呢?怎么进行优化
4.直播项目优化
I.通过适配器adapter适配下发:底层封装,局部适配
![](https://img.haomeiwen.com/i4193251/02d3b4820429b9f5.png)
![](https://img.haomeiwen.com/i4193251/5a178eb146f7fbf2.png)
![](https://img.haomeiwen.com/i4193251/91a239d78be16dad.png)
II.通过中间层context获取view、model,vc对context是弱引用,context是NSObject的分类中的关联属性,都会有context
![](https://img.haomeiwen.com/i4193251/7da3227fe9682b03.png)
![](https://img.haomeiwen.com/i4193251/cb2335d77fb28067.png)
![](https://img.haomeiwen.com/i4193251/5acb18c72ef20455.png)
III.context的下层流,发送礼物如何发送到不同的View上,遍历地推找最里层的最大的父视图的context赋值给子视图,子子孙孙的子视图都具有context
![](https://img.haomeiwen.com/i4193251/e8c45e68de5b923b.png)
![](https://img.haomeiwen.com/i4193251/c575bd3f335b226b.png)
IV.包装模型、事务统一划分
![](https://img.haomeiwen.com/i4193251/a021b3d93a72361b.png)
![](https://img.haomeiwen.com/i4193251/6dcfe08fc0d9c095.png)
![](https://img.haomeiwen.com/i4193251/6c3ee67b6eedcd0d.png)
![](https://img.haomeiwen.com/i4193251/dc0386a31fc1ff10.png)
网友评论