如何使用KVO

作者: yyMae | 来源:发表于2016-02-26 16:40 被阅读252次

    用法

    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];
      }
    

    相关文章

      网友评论

        本文标题:如何使用KVO

        本文链接:https://www.haomeiwen.com/subject/aerwkttx.html