Obejctiv-c 里面KVC 和 KVO的实现步骤,和有关方法

KVC
访问属性的方法: 调用读方法和写方法 点语法 KVC(Key Value Coding) 关键方法与步骤 // 用KVC设置对象属性值 // 先找指定属性的写方法 // 如果没找到则继续找 _属性名 的成员变量 // 如果没找到则继续找 属性名 的成员变量 // 如果没找到则调用 setValue:forUndefinedKey 方法 [object setValue:value forKey:key]; [object setValue:value forKeyPath:keyPath]; [object setValuesForKeysWithDictionary:keyValues]; // 用KVC读取对象属性值 // 先找指定属性的读方法 // 如果没找到则继续找 _属性名 的成员变量 // 如果没找到则继续找 属性名 的成员变量 // 如果没有找到则调用 valueforUndefinedKey: 方法 id value = [object valueForKey:key]; id value = [object valueForKeyPath:keyPath]; // 需重写(默认是抛出异常) - (void)setValue:(id)value forUndefinedKey:(NSString *)key; - (id)valueForUndefinedKey:(NSString *)key; - (void)setNilValueForKey:(NSString *)key
KVO

通知模式   在一个复杂的,有状态的系统中,当一个对象的状态发生改变,如何通知系统,并对状态改变做出相应的行为是必需考虑的一个问题,在iOS中为这类问题提供了4种解决方法:   Delegates:代理   Callback:回调   KVO(Key-Value Observing):键值观察   NSNotifiactaion和NSNotificationCenter:通知中心 关键方法与步骤 // 先添加观察者监听指定属性 [object addObserver:object forKeyPath:@"name" options:NSKeyValueObservingOptionNew context:nil]; // 重写观察者的observeValueForKeyPath方法 // NSKeyValueObservingOptionNew 返回新值 // NSKeyValueObservingOptionOld 返回旧值 // NSKeyValueObservingOptionInitial 一旦注册就会调用一次。 // NSKeyValueObservingOptionPrior 在值改变之前调用一次,在值改变之后再调用一次 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context; // 移除观察者 [object removeObserver:object forKeyPath:@"name"];
  
原文地址:https://www.cnblogs.com/tang910103/p/5061420.html