设为首页 加入收藏

TOP

object-c编程tips-KVO,KVC浅析(四)
2015-01-22 20:57:07 来源: 作者: 【 】 浏览:19
Tags:object-c 编程 tips-KVO KVC 浅析
返回一个可以响应NSSet所有方法的代理集合(collection proxy object)。发送给这个代理集合(collection proxy object)的NSSet消息方法,就会以countOf 、enumeratorOf 、memberOf :组合的形式调用。

4, 还是没查到,那么如果类方法accessInstanceVariablesDirectly返回YES,那么按_ ,_is ,is 的顺序直接搜索成员名。如果实例变量被找到,那么它的值会被以对象的形式返回(数值类型进行NSNumber的封装,其他的进行NSValue的封装)。

5. 再没查到,调用valueForUndefinedKey:。

?

查找有序集合成员,比如NSMutableArray

mutableArrayValueForKey:搜索方式如下:

1,搜索insertObject:in AtIndex:、removeObjectFrom AtIndex:或者insert :atIndexes、remove AtIndexes:格式的方法。

如果至少一个insert方法和至少一个remove方法找到,那么同样返回一个可以响应NSMutableArray所有方法的代理集合。那么发送给这个代理集合的NSMutableArray消息方法,以insertObject:in AtIndex:、removeObjectFrom AtIndex:、insert :atIndexes、remove AtIndexes:组合的形式调用。还有两个可选实现的接口:replaceObjectIn AtIndex:withObject:、replace AtIndexes:with :。

2,否则,搜索set :格式的方法,如果找到,那么发送给代理集合的NSMutableArray最终都会调用set :方法。

也就是说,mutableArrayValueForKey取出的代理集合修改后,用set :重新赋值回去。这样做效率会差很多,所以推荐实现上面的方法。

3,否则,那么如果类方法accessInstanceVariablesDirectly返回YES,那么按_ 的顺序直接搜索成员名。如果找到,那么发送的NSMutableArray消息方法直接转交给这个成员处理。

4. 再找不到,调用setValue:forUndefinedKey:。

搜索无序集合成员,如:NSSet。

mutableSetValueForKey:搜索方式如下:

1. 搜索add Object:、remove Object:或者add :、remove :格式的方法,如果至少一个insert方法和至少一个remove方法找到,那么返回一个可以响应NSMutableSet所有方法的代理集合。那么发送给这个代理集合的NSMutableSet消息方法,以add Object:、remove Object:、add :、remove :组合的形式调用。还有两个可选实现的接口:intersect 、set :。

2. 如果reciever是ManagedObejct,那么就不会继续搜索了。

3. 否则,搜索set :格式的方法,如果找到,那么发送给代理集合的NSMutableSet最终都会调用set :方法。也就是说,mutableSetValueForKey取出的代理集合修改后,用set :重新赋值回去。这样做效率会差很多,所以推荐实现上面的方法。

4. 否则,那么如果类方法accessInstanceVariablesDirectly返回YES,那么按_ 的顺序直接搜索成员名。如果找到,那么发送的NSMutableSet消息方法直接转交给这个成员处理。

?

?

首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇object-c编程tips-jastor自动解析 下一篇动态映射objective-c的对象方法修..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: