问题:如何手动触发一个value的KVO

2020-05-11  本文已影响0人  姜小舟

键值观察通知依赖于NSObject的两个方法:

在一个被观察属性发生改变之前,willChangeValueForKey:一定会被调用,这就会记录旧的值。而当改变发生后,didChangeValueForKey:会被调用,继而objectServeValueForKey:ofObject:change:content:也会被调用。如果可以手动实现这些调用,就可以实现“手动触发”了。

@property (nonatomic, strong) NSDate *now;
- (void)viewDidLoad {
    [super viewDidLoad];

    // “手动触发self.now的KVO”,必写。
    [self willChangeValueForKey:@"now"];

    // “手动触发self.now的KVO”,必写。
    [self didChangeValueForKey:@"now"];
}
上一篇 下一篇

猜你喜欢

热点阅读