深入探索键值编码与键值观察技术
1. 键值编码(KVC)深入特性
1.1 设置值时的查找流程
当为特定键设置值时,运行时会按以下步骤查找合适的访问器:
1. 首先,在类中搜索符合标准访问器模式 -set<ValueName>: 的访问器。
2. 若未找到访问器,类可实现可选方法 -accessInstanceVariablesDirectly 并返回 YES 。此时,运行时会按 _<valueName> 、 _is<valueName> 、 <valueName> 、 is<valueName> 的顺序搜索实例变量。
3. 若以上都不适用,将调用 -setValue:forUndefinedKey: 方法,该方法默认会抛出异常。
1.2 获取值时的查找流程
使用键值编码获取值时,运行时查找变量的流程如下:
1. 按 -get<ValueName> 、 -<valueName> 、 -is<ValueName> 的顺序在类中搜索访问器。若找到,则使用该访问器获取值。
2. 若未找到符合规范的访问器,会尝试判断要访问的值是否为数组。通过检查 -countOf<Value
超级会员免费看
订阅专栏 解锁全文
27

被折叠的 条评论
为什么被折叠?



