iOS 的页面刷新技术(block,通知)和MVC模型

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之间来回传输;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值