程序员iOS进阶指南iOS Developer

如何使用KVO

2016-02-26  本文已影响252人  yyMae

用法

KVO键值观察,使用起来非常方便
举个例子:比如你想要再某个值改变的时候执行一个方法(每次改变都要执行)
你只需要坐到以下两点即可:

  1. 给某对象添加观察者
    [某对象 addObserver:self forKeyPath:@"你要观察的属性名" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];

  2. 实现回调方法,该方法在你所观察的值改变的时候会触发
    - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context


示例代码

#import <UIKit/UIKit.h>
@interface YYListView : UIView<UITableViewDataSource,UITableViewDelegate>
//该属性设为要观察的值
@property (nonatomic, assign) NSInteger index;
@end


//在控制器中创建一个YYListView的对象,给它添加观察者
- (void)viewDidLoad{
[super viewDidLoad];

YYListView *LV = [YYListView alloc]init];
[LV addObserver:self forKeyPath:@"index" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];
}

 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
    //每当值改变就调用action方法
   [ self action];
  }

上一篇下一篇

猜你喜欢

热点阅读