#KVO#(了解)KVO的使用

/*
   KVO: Key Value Observing (键值监听)--->当某个对象的属性值发生改变的时候(用KVO监听)
 */

#import "ViewController.h"
#import "XMGPerson.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
 
    XMGPerson *person = [[XMGPerson alloc] init];
    person.name = @"zs";
    
    /*
     作用:给对象绑定一个监听器(观察者)
     - Observer 观察者
     - KeyPath 要监听的属性
     - options 选项(方法方法中拿到属性值)
     */
    [person addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];
    
    
    person.name = @"ls";
    
    person.name = @"ww";
    

    
    // 移除监听
    [person removeObserver:self forKeyPath:@"name"];
}

/**
 *  当监听的属性值发生改变
 *
 *  @param keyPath 要改变的属性
 *  @param object  要改变的属性所属的对象
 *  @param change  改变的内容
 *  @param context 上下文
 */
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context{
    NSLog(@"%@------%@------%@", keyPath, object, change);
}

@end

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简介 KVO(键值监听),即 Key-Value Observing, 是Objective-C 对观察者设计模式...
    Arthur澪阅读 2,532评论 0 0
  • 我有时候会想,以后开个花店叫“骑士”好不好,文案就围绕骑士和公主的主题,至少要两间店面吧,铺满鲜花,还要开个网店,...
    灰漾阅读 1,716评论 0 1
  • 突然我发现我为什么特别喜欢做管理咨询,教练这个行业。原来我一直喜欢的是文案,尤其是把那些有修为的导师,教练去呈现的...
    心我听你说阅读 1,683评论 0 0
  • 第一次参加爱蜜部落的课程,在不停的擦擦擦中画的第一步线稿。
    晨怡阅读 1,072评论 2 0