第⼆十四讲:MVC、通知

本讲内容



⼀、MVC


MVC

Model - View - Controller 即 模型 - 视图 - 控制器⼲广泛应⽤于各种开发。



MVCModel(模型),存储、处理数据,为应⽤用程序提供数据。例如:通

讯录中的ContactPerson、《⾖豆瓣》中的ActivityMovie等等。View(视图),展⽰示⽤户界面视图,提供⽤户交互,展示模型提供的数据。

例如:系统提供的视图类、⾃定义的视图类等等。

Controller(控制器),控制视图显示,处理用户交互,从模型获取数据展⽰示在视图上。目的是解除模型和视图之间的耦合。




CV通信

C直接控制V

例如:在Controller中创建一个UIButtonVC发起通信的⽅式:

设置Viewtarget/action,例如设置UIButtontarget/action。设置delegate,例如设置UITextFieldUIAlertView代理。设置dataSource,例如设置UITableViewdataSource

C负责处理V产生的事件。



CM通信

CM提出需求,直接使⽤M提供的数据。MC发起通信方式:KVO、通知,可以在M发生变化时通知C,C负责读取M提供的数据,负责监控M的变化并进⾏处理。



VM通信

VM禁⽌止通信。C负责MV之间的通信。CM获取数据,将数据显⽰示在View上。




MVC优势

实现低耦合,减少视图和控制器之间复杂冗余的代码。

 提⾼重用性,多个视图可以共享一个模型,多个控制器可以共享一
个视图。

更易于维护,MVC独⽴立,可以分别处理不同的变化。



⼆、通知


通知

 通知模式:一个对象能够给其他任意数量的对象⼲广播信息。对象之间可以没有耦合关系。

NSNotification(通知),封装了要⼲广播的信息。NSNotificationCenter(通知中⼼心),管理注册接收消息对象,⼲广播消

息。observer(观察者),需要监测⼲广播信息的对象,即接收信息的对象。



使⽤方法

 接收信息对象在通知中心进⾏行注册,包括:信息名称、接收信息
时的处理⽅方法。
 对象通过通知中⼼⼲广播信息,包括:信息名称、信息内容。
 已经注册过的对象如果不需要接收信息时,在通知中心注销。


使⽤方法
注册: [[NSNotificationCenter defaultCenter] addObserver:注册对象selector:@selector(⽅方法名) name:信息名称 object:nil]

注销: [[NSNotificationCenter defaultCenter] removeObserver:注销对象 name:信息名称 object:nil];

发送信息:[[NSNotificationCenter defaultCenter]postNotificationName:信息名称 object:发信息对象 userInfo:发送消息时传递的信息];



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值