KVC和KVO

kvc即key valued coding 键值编码

建立model,设置属性

为了防止崩溃,在model的.m里面需要写上这个方法

在viewcontroller里面引入头文件,并设置全局的kvcModel *model;

通过setValue forKey方法对dic里面的value进行改变。

通过打印的结果我们可以看到,之前dic里面的name和sex属性的value发生了变化

KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了

在ObjC中使用KVO操作常用的方法如下:

注册指定Key路径的监听器:addObserver: forKeyPath: options:context:

删除指定Key路径的监听器:removeObserver: forKeyPathremoveObserver: forKeyPath: context:

回调监听:observeValueForKeyPath: ofObject: change: context:

系统框架已经支持KVO,所以程序员在使用的时候非常简单。

1. 注册,指定被观察者的属性,

2. 实现回调方法

3. 移除观察

//需要注意的是观察者模式需要手动销毁,当前界面销毁,并不代表观察者模式也销毁了

//观察的对象self为响应的对象

path为观察对象其中的哪一个属性,使用字符串来表示这个属性,要求与属性名保持一致

options为观察值变化为有新的变化时候,通知我context上下文

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在编程中,最常见的就是程序的流程取决于你所使用的各种变量和属性的值,根据变量和属性的值确定后面运行的代码,有时会检...
    pro648阅读 5,603评论 2 27
  • 转载:http://yulingtianxia.com/blog/2014/05/12/objective-czh...
    F麦子阅读 4,578评论 0 0
  • 在iOS开发中,我们常常用到键值编码KVC和键值监听KVO两个东东,今天小编和大家分享的就是这两个东东在应用开发中...
    突然自我阅读 4,615评论 2 3
  • 什么是KVC和KVO?两者之间有何关系 KVC : 键值编码,是Key Value Coding 的简称,coco...
    兰章海晏阅读 9,021评论 0 3
  • 概念 先来看看概念,Key-value coding (KVC) 和 key-value observing (K...
    wuwy阅读 5,335评论 0 1

友情链接更多精彩内容