开发者社区> 问答> 正文

KVC的赋值和取值过程是怎样的?KVO原理是什么?

KVC的赋值和取值过程是怎样的?KVO原理是什么?
KVC的赋值和取值过程是怎样的?KVO原理是什么?

展开
收起
游客nk7qyrf7lwotm 2019-05-29 14:01:38 2068 0
1 条回答
写回答
取消 提交回答
  • 一、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~

    2019-10-18 11:02:27
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载