iOS的KVC原理探究

设置键值

- (void)setValue:(id)value forKey:(NSString *)key;
  1. 搜索setter方法,如果找到,直接赋值
  2. 通过accessInstanceVariablesDirectly方法
    i. 返回YES,则按_,_的顺序搜索成员名
    ii. 返回NO,则执行setValue:forUndefinedKey

根据键获取值

- (id)valueForKey:(NSString *)key;
  1. 根据getter方法,如果有,直接拿到值
  2. 通过accessInstanceVariablesDirectly方法
    i. 返回YES,则按_,_的顺序搜索成员名
    ii. 返回NO,则执行valueForUndefinedKey

你可能感兴趣的:(iOS的KVC原理探究)