iOS设计模式 - KVO

KVO是苹果自带的一个机制,用于监听当前这个类的属性值的改变,当被监听的属性值发生改变时,当前的类会接收到属性改变的通知

如果想在一个类中使用KVO,需要先添加一个KVO来监听指定属性的改变

self addObserver:(NSObject *) forKeyPath:(NSString *) options:(NSKeyValueObservingOptions) context:(void *)
addObserver 监听对象的类

forKeyPath 监听对象的属性名

options 属性发生的改变类型 

context 传的参数


当监听 的属性发生改变的时候会调用以下的方法

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


重写dealloc方法,并释放KVO的监听

-(void)dealloc
{
    [self.view removeObserver:self forKeyPath:@"KVOName"];
}


KVO 的优点:

 
当有属性改变,KVO 会提供自动的消息通知。这样开发人员不需要自己去实现这样的方案:每次属性改变了就发送消息通知。

这是 KVO 机制提供的最大的优点。因为这个方案已经被明确定义,获得框架级支持,可以方便地采用。

开发人员不需要添加任何代码,不需要设计自己的观察者模型,直接可以在工程里使用。

其次,KVO 的架构非常的强大,可以很容易的支持多个观察者观察同一个属性,以及相关的值。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值