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<NSKeyValueChangeKey,id> *)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;
网友评论