美文网首页iOS开发(OC)
如何手动触发一个 value 的 KVO ?

如何手动触发一个 value 的 KVO ?

作者: FRAJ | 来源:发表于2019-05-13 16:05 被阅读0次

自动触发场景:在注册 KVO 之前设置一个初始值,注册之后,设置一个不一样的值,这样就可以触发了。

手动触发:

.m文件
//手动触发 value 的 KVO ,最后两行代码缺一不可

@property (nonatomic, strong) NSDate *now;

- (void)viewDidLoad{
  [super viewDidLoad];
  _now = [NSDate date];
  [self addObserver:self forKeyPath:@"now" options:NSKeyValueObservingOptionNew context:nil];
  NSLog(@"1");
  [self willChangeValueForKey:@"now"];//手动触发self.now的KVO,必写。
  NSLog(@"2");
  [self didChangeValueForKey:@"now"];//手动触发self.now的KVO,必写。
  NSLog(@"4");
}

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context{
  NSLog(@"3");
}

相关文章

  • iOS KVO的手动实现过程

    如何手动触发一个value的KVO 手动实现 willChangeValueForKey 和 didChangeV...

  • iOS面试题-OC

    1. 如何手动触发一个value的KVO NSObject 有 willChangeValueForKey: 和...

  • IOS问题与解答

    对KVO原理的理解: 问:如何手动触发一个value的KVO 答:主动调用: willChangeValueFor...

  • KVO

    iOS用什么方式实现对一个对象的KVO 如何手动触发KVO 直接修改成员变量会触发KVO么? KVO [self....

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

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

  • 如何手动触发一个value的KVO?

    所谓的“手动触发”是区别于“自动触发”:自动触发是指类似这种场景:在注册 KVO 之前设置一个初始值,注册之后,设...

  • 如何手动触发一个value的KVO

    所谓的“手动触发”是区别于“自动触发”: 想知道如何手动触发,必须知道自动触发KVO的原理: 转载自《猿圈》 那么...

  • 如何手动触发一个 value 的 KVO ?

    自动触发场景:在注册 KVO 之前设置一个初始值,注册之后,设置一个不一样的值,这样就可以触发了。 手动触发:

  • 如何手动触发一个 value 的 KVO?

    原文:iOS面试题大全 KVC,即是指 NSKeyValueCoding,一个非正式的 Protocol,提供一种...

  • 深入理解KVO

    iOS | KVO | Objective-C KVO的本质是什么,如何手动触发KVO? 1.什么是KVO KVO...

网友评论

    本文标题:如何手动触发一个 value 的 KVO ?

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