iOS KVO KVC

KVO

什么是KVO?

KVO的全称是Key-Value Observing,俗称"键值监听",可以用于监听摸个对象属性值得改变。

要监听Person中的age属性,我们就创建一个observer用来监听age的变化,当我们age一旦发生改变,就会通知observer。

KVO简单的实现

NSKeyValueObservingOptions options = NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld;
[obj addObserver:self forKeyPath:@"age" options:options context:nil];

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
    NSLog(@"监听到了%@的%@属性发生了改变%@",object,keyPath,change);
}

- (void)dealloc{
    ///> 使用结束后记得移除
    [obj removeObserver:self forKeyPath:@"age"];
}

KVC

什么是KVC?

KVC的全称key - value - coding,俗称"键值编码",可以通过key来访问某个属性

常见的API有:

- (void)setValue:(id)value forKey:(NSString *)key;
- (void)setValue:(id)value forKeyPath:(NSString *)keyPath;

- (id)valueForKey:(NSString *)key; 
- (id)valueForKeyPath:(NSString *)keyPath;

参考文献

  • https://juejin.im/post/5c2189dee51d454517589c8b

你可能感兴趣的:(iOS KVO KVC)