如何使用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

    如何优雅地使用 KVO 如何优雅地使用 KVO

  • [iOS] KVO的指导

    nshipster - KVO 如何优雅地使用 KVO

  • 04. KVO使用,原理,本质

    问题 KVO日常使用 KVO原理(KVO本质是什么) 如何手动触发KVO 直接修改成员变量会触发KVO吗 KVO图...

  • 自定义KVO,自动释放,监听多个属性

    自定义的 KVO,支持多属性监听,支持自动释放。 使用系统 KVO 监听属性 先来回顾下系统 KVO 是如何使用的...

  • iOS底层原理总结 - 探寻KVO本质

    问题iOS用什么方式实现对一个对象的KVO?(KVO的本质是什么?)如何手动触发KVO 首先需要了解KVO基本使用...

  • 通知 /KVO、KVC相关

    如何实现通知机制? KVO ·kvo是OC对观察者设计模式的又一实现 ·APPLE使用了isa混写实现kvo KV...

  • iOS开发-底层原理 - KVO

    问题:iOS用什么方式实现对一个对象的KVO?(KVO的本质是什么?)如何手动触发KVO? 一.基本使用 概念:K...

  • KVO基本使用

    分三部分解释KVO一.KVO基本使用二.KVO原理解析三.自定义实现KVO 一、KVO基本使用 使用KVO,能够非...

  • 如何使用KVO

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

  • 如何利用kvo定制属于自己的下拉刷新控件

    kvo具有监听属性变化并发出通知的特性,Demo中就是利用kvo这个特性来定制刷新控件的 1.如何使用kvo 在哪...

网友评论

    本文标题:如何使用KVO

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