在通知机制中对某个通知感兴趣的所有对象都可以成为接收者。
首先,这些对象需要对通知中心(NSNotificationCenter)发出addObserver:selector:name:object:消息进行注册,在投送对象投
送通知给通知中心时,通知中心就会把通知广播给注册过的接收者。所有的接收者都不知道通知是谁投送的,更不关心它的细节。投送对象与接收者是一对多的关系。接收者如果对通知不再关注,会给通知中心发出
removeObserver:name:object:消息解除注册,以后不再接收通知。
1)注册观察者:(一般在viewDidLoad方法中实现)
2)接收广播后的处理
3)解除注册(一般在dealloc方法中解除=注册)
通过postNotificationName:object:userInfo:发送某一类型通知,广播改变。
一个通知对象要包含的内容:
一、KVO是注册观察者模式,是一种监听模式。(1)通过注册观察者addObserve的方法,可以获取监听的对象变化的值,从而实现要变化的方法。(2)例如有两个滑动视图,希望其中一个视图滑动时候,另一个视图也跟着变化,同时变化相同的偏移量,那么可以注册一个观察者,观察视图1的偏移量变化,在观察者方法-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id>*)change context:(void *)context中,根据change的值获得视图1的偏移量,并让视图二做出相同的偏移。二、KVC是访问对象属性的方法,K即key,V即Value,C是coding系统的编码方式。(1)通过setValue:forKey的方式,给对象的某一个属性赋值,在未公开属性的情况下就可以使用这种方法.(2)比如有一个Person类,有一个Person *person = [[Person alloc] init]对象,想给个name属性,并给name一个值“张三”,就可以写成[person setValue:"张三" forKey:"name"],如果说person又一个公开的name属性,那么上一句话就等于person.name=@"张三"。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)