KVC的赋值和取值过程是怎样的?KVO原理是什么?
KVC的赋值和取值过程是怎样的?KVO原理是什么?
一、KVO是注册观察者模式,是一种监听模式。 (1)通过注册观察者addObserve的方法,可以获取监听的对象变化的值,从而实现要变化的方法。 (2)例如有两个滑动视图,希望其中一个视图滑动时候,另一个视图也跟着变化,同时变化相同的偏移量,那么可以注册一个观察者,观察视图1的偏移量变化,在观察者方法 -(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context中,根据change的值获得视图1的偏移量,并让视图二做出相同的偏移。 二、KVC是访问对象属性的方法,K即key,V即Value,C是coding系统的编码方式。 (1)通过setValue:forKey的方式,给对象的某一个属性赋值,在未公开属性的情况下就可以使用这种方法. (2)比如有一个Person类,有一个Person *person = [[Person alloc] init]对象,想给个name属性,并给name一个值“张三”,就可以写成[person setValue:"张三" forKey:"name"],如果说person又一个公开的name属性,那么上一句话就等于person.name=@"张三"。
来源于网络,供您参考,如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】 希望我的回答对您有所帮助,望采纳! ~ O(∩_∩)O~
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。