MVC、KVO、KVC

来源:互联网 发布:淘宝 大麦网 编辑:程序博客网 时间:2024/05/01 01:06

MVC (Model-View-Controller) ,MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。

M(Model)是模型对象,主要负责存储数据,模型对象通常会使用NSArray、NSDictionary、NSSet。

V(View)是视图对象,主要是一些UIButton、UILabel。

C(Controller)是控制器对象, 负责保持视图对象和模型对象的一致性,控制应用的流程,并将模型对象保存至文件系统。 比如说UITableView对象中的数据更新了,控制器负责刷新数据,然后通知视图对象并显示。


KVO(Key-Value Observing), KVO提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后KVO就会自动通知相应的观察者了。(这样的机制听起来类 似Notification,但是notification是需要一个发送notification的对象,一般是 notificationCenter,来通知观察者。而kvo是直接通知到观察对象。


KVO使用方法:

1. 注册

-(void)addObserver:(NSObject *)anObserver forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void*)context
keyPath就是要观察的属性值,options给你观察键值变化的选择,而context方便传输你需要的数据。


2. 实现回调方法

-(void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)objectchange:(NSDictionary *)change context:(void*)context

3. 移除



KVC(key-value coding), 它 是一种使用字符串标识符,间接访问对象属性的机制,它是很多技术的基础。

主要的方法就两对方法:(setValue:forKey,valueForKey)、setValue:forKeyPath,valueForKeyPath)




0 0