关于KVC取值 valueForKey:key 的调用顺序
先调用相关方法,其先后顺序:
- getter方法:getKey(注意Key的首字母大写) -> key -> isKey
- NSArray方法:countOfKey 和 objectInKeyAtIndex
如果没有相关方法:看+(BOOL)accessInstanceVariablesDirectly返回值
- 返回YES 找成员变量,先后顺序是:_key -> _isKey -> key -> isKey
- 返回NO 抛出异常 valueForUndefinedKey
关于KVC赋值 setValueForKey 的调用顺序
先调用相关方法,其先后顺序:
- setter方法:setKey -> _setKey
如果没有相关方法:看+(BOOL)accessInstanceVariablesDirectly返回值
- 返回YES 找成员变量,先后顺序是:_key -> _isKey -> key -> isKey
- 返回NO 抛出异常 valueForUndefinedKey