KVO:键值监听:用于监听某个属性的改变,并做一些处理
KVC:键值编码
KVC赋值,取值,一些计算功能
- 1.给模型的属性赋值
//key:只能使用属性
- (void)setValue:(nullable id)value forKey:(NSString *)key;
//key: 可以使用成员变量(_name ),点语法(dog.name ),属性(name)
- (void)setValue:(nullable id)value forKeyPath:(NSString *)keyPath;
- 2.字典模型的赋值
- (void)setValuesForKeysWithDictionary:(NSDictionary<NSString *, id> *)keyedValues;
注意:能改变私有成员变量
- 3.KVC的取值:
- (nullable id)valueForKey:(NSString *)key;
- (nullable id)valueForKeyPath:(NSString *)keyPath;
- (NSDictionary<NSString *, id> *)dictionaryWithValuesForKeys:(NSArray<NSString *> *)keys;
- 4.KVC的一些简单计算
KVC字典转模型原理