iOS的KVC原理探究
2018-03-07 本文已影响9人
踏云小子
设置键值
- (void)setValue:(id)value forKey:(NSString *)key;
- 搜索setter方法,如果找到,直接赋值
- 通过
accessInstanceVariablesDirectly
方法
i. 返回YES,则按_<key>,_<isKey>,<key>,<isKey>
的顺序搜索成员名
ii. 返回NO,则执行setValue:forUndefinedKey
根据键获取值
- (id)valueForKey:(NSString *)key;
- 根据getter方法,如果有,直接拿到值
- 通过
accessInstanceVariablesDirectly
方法
i. 返回YES,则按_<key>,_<isKey>,<key>,<isKey>
的顺序搜索成员名
ii. 返回NO,则执行valueForUndefinedKey