valueForKey:
-
给定一个
key
作为输入 -
搜索实例方法顺序:
get<Key>
,<key>
,is<Key>
或者_<Key>
-
找到
: 检查属性值是否是对象
指针
是
: 返回结果
否
:判断是否是所支持的标量类型
NSNumber
----是
: 将其存储在NSNumber
实例中返回
----否
:则将其转换为NSValue
对象并返回 -
未找到
:在实例中搜索下面三个方法
1
:countOf<Key>
2
:objectIn<Key>Atindex:
(与NSArray类定义的原始方法<key>Atindexes:向对应)
3
:objectsAtindexes:
(与该NSArray方法相对应相匹配的方法)
------如找到
其中一个
以及其他两个
中的至少一个
,则创建一个响应
所有NSArray
方法的集合代理对象将其返回。
------如未找到
则再次查找下面三组方法
1
:countOf<Key>
2
:enumeratorOf<Key>:
3
:memberOf<Key>:
(对应于NSSet类定义的原始方法)
------如这三个方法都找到了
创建一个集合代理对象它响应所有的NSSet
方法并返回
------未找到
(简单的访问方法或集合访问方法组)查看接受方的类方法+(BOOL)accessInstanceVariablesDisrectly
返回的YES NO -
+(BOOL)accessInstanceVariablesDisrectly
YES
: 则按照顺序搜索一个实例变量:_<Key>
,_is<Key>
,<Key>
,或is<Key>
.
------如找到
:直接获取实例变量。
------未找到
:调用valueForUndefinedKey:
方法,查找完成。默认会崩溃 但是NSObject的子类可能会重写此方法提供特定于键的行为。
NO
:则调用valueForUndefinedKey:
方法,查找完成。默认会崩溃 但是NSObject的子类可能会重写此方法提供特定于键的行为
setValue:forKey:
- 给定键 和值作为参数输入,尝试在接受调用的对象内部设置一个名为Key的属性 value(或者,对于费对象属性,为value的解包装版本,如面熟的非对象值)
- 按照顺序查找
set<Key>:
或_set<Key>:
找到
:输入值(或根据需要解包的值)调用它并完成
未找到
:查看+(BOOL)accessInstanceVariablesDisrectly
返回 YES NO - +(BOOL)accessInstanceVariablesDisrectly
YES
:顺序查找_<Key>
,_is<Key>
,<Key>
,或者is<Key>
------找到
:直接输入值(或者展开值)设置变量并完成
------未找到
:调用 setValue:forUndefinedKey: 默认情况差生异常
NO
: 调用 setValue:forUndefinedKey: 默认情况差生异常
网友评论