KVC

  • KVC的全称是Key-Value Coding,俗称“键值编码”,可以通过一个key来访问某个属性。
  • 常见的API有:
- (void)setValue:(id)value forKeyPath:(NSString *)keyPath;
- (void)setValue:(id)value forKey:(NSString *)key;
- (id)valueForKeyPath:(NSString *)keyPath;
- (id)valueForKey:(NSString *)key; 
setValue:forKey:的原理.png

valueForKey-的原理.png
  • 通过KVC修改属性触发KVO:KVC在赋值的时候会进行方法的调用,首先调用(_setKey,setKey方法),如果没有set方法,则直接内部自己调用设置属性(key,_key),内部调用了willChangeValueForKey和didChangeValueForKey,会触发KVO。

你可能感兴趣的:(KVC)