美文网首页
KVO相关整理

KVO相关整理

作者: 大风天上来 | 来源:发表于2021-03-01 17:46 被阅读0次

下边三种方式都可以:

    [self addObserver:self forKeyPath:@"self.now" options:(NSKeyValueObservingOptionNew) context:nil];
    [self addObserver:self forKeyPath:@"now" options:(NSKeyValueObservingOptionNew) context:nil];
    [self addObserver:self forKeyPath:@"_now" options:(NSKeyValueObservingOptionNew) context:nil];

触发监听

self.now = [NSDate date];// 正常自动触发监听
_now = [NSDate date];// 不能触发监听

/// 手动触发KVO    
[self willChangeValueForKey:@"_now"];
[self didChangeValueForKey:@"_now"];

重写set方法事,不需要调用willChangeValueForKeydidChangeValueForKey两个方法,如果同时加了,会重复调响应observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context方法;

KVO机制,重写了set方法,必须有self.now(setNow)的操作,不然不能触发监听;

    //这三种方式都可以触发
    [self setValue:now forKey:@"now"];
    [self setNow:[NSDate date]];
    self.now = [NSDate date];
    //这两种不能触发
    [self setValue:now forKey:@"_now"];
    _now = [NSDate date];

相关文章

  • KVO相关整理

    下边三种方式都可以: 触发监听 重写set方法事,不需要调用willChangeValueForKey和didCh...

  • KVO相关

    KVO的实现原理: 核心是重写子类的set方法进行监听 具体是:当某一个类在注册监听的时候,系统会动态(1)创建一...

  • KVO 相关

    1 . KVO 的基本使用kvo "键值监听", 全称"Key-Value Observing" ,监听对象属性...

  • kvo整理

    1.概述 KVO,即:Key-Value Observing,是 Objective-C 对 观察者模式(Obse...

  • kvo整理

    其实是第一次看Key-Value Observing Programming Guide和Key-Value Co...

  • 动手实现 KVO

    动手实现 KVO 相关链接:http://tech.glowing.com/cn/implement-kvo/ 概...

  • iOS-KVO相关

    KVO相关 一、KVO初探 — 响应观察 (一)KVO 使用 的 三部曲 1、添加观察 2、响应 3、析构 (...

  • Swift KVO相关

    前言 在写swift版的上下拉刷新,语法看了3个小时就开始动手了,结果一路坑,先写几篇铺垫的文章,后续文章会附上上...

  • KVO 相关总结

    1.Objective-C 中的键(key)-值(value)观察(KVO)并不是什么新鲜事物,它来源于设计模式中...

  • 四、KVO的本质

    1.KVO的本质 1.1动态添加的子类内部的class的实现 2.KVO相关面试题

网友评论

      本文标题:KVO相关整理

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