【iOS7的一些总结】7、键值观察者模式KVO

1、概念:

所谓键值观察者,是一个对象获取其他对象特定属性变化的通知机制。看上去KVO同通知机制类似,而不同点在于KVO没有提供一个所谓的通知中心为所有的观察者提供变化通知,而是当变化发生时,通知直接送达正在观察的对象。


2、键值观察者模式的实现:

(1)注册观察者:

观察对象发送消息到被观察对象,以建立二者的观察关系:

- (void)addObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void *)context;

keyPath所指的是被观察对象的属性名,用字符串表示。


(2)当所观察对象的属性发生变化时,调用以下方法:

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

需要注意的是,keyPath所表示的属性,必须使用setter方法或者kvc方法改变值的时候才会调用kvo的观察响应函数,直接在类的内部改变属性的值,kvo方法无效。


(3)移除观察者:

- (void)removeObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath;
移除之后,对象属性的变化将不会再引发响应函数的调用。

上一篇:Shell特殊变量


下一篇:iOS图片上传服务器(ASIHTTPRequest,SpringMVC)