IOS的主要任务:数据显示
而数据显示:数据+显示
首先我先列举一下移动APP的MVC设计模式
M————Model
V————View
C————Controller
显然MVC就是用一种数据与显示分离的方法组织代码;
显示就是View,数据与显示分离即数据不在View里面;
数据与显示分离有三种情况:
1,data——>>Controller
2,data——>>Model
3,data——>> 其他文件
1,传统的数据显示方法
缺点:代码冗余
将Data放在Controller不太符合MVC设计模式
2,将数据放在Model中,发通知刷新UI
缺点:发通知消耗系统性能,降低程序运行速度
将Data放在Model中不太符合MVC设计模式
3,将数据放在Model中,用Block回调和GCD多线程刷新UI
缺点:Block回调消耗系统性能,降低程序运行速度
将Data放在Model中不太符合MVC设计模式
这里使用GCD主要是为了避免界面在处理耗时的操作时卡死,比如读取网络数据,IO,数据库读写等,我们会在另外一个线程中处理这些操作,然后通知主线程更新界面,添加多线程才是ios刷新UI的规范
4,将数据放在另外的独立模块中,用Block回调和GCD刷新UI
四种页面刷新技术的图示如下:
1,
第二种和第三种
第四种
本人认为第四种刷新UI的方法是最符合MVC设计模型的,他将数据完全封装在一个network类里面,这样代码可维护性和结构性就大大增强,这样View里面就只有页面布局,Controller就只有赋值操作,Model里面就只有模型;而数据就会在Controller的控制下在M和C之间来回传输;