书面语: KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了。
工程中:
新建一个KVO:
[A addObserver:B forKeyPath:@"isSecondMenu" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];
事件的回调:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
if(SINGLECLASS.isSecondMenu){
[_footView removeFromSuperview];
}else{
[self.view addSubview:_footView];
}
}
官方描述:Registers anObserver to receive KVO notifications for the specified key-path relative to the receiver.
A,B都是类,A 注册一个观察者去响应事件(isSecondMenu 发生改变时回调的一个事件),而isSecondMenu
必须是A类的一个属性。
响应事件必须在B类中实现。