iOS 中KVO和KVC的使用

来源:互联网 发布:网络神偷9.1破解版 编辑:程序博客网 时间:2024/05/17 23:22

From:http://snowyshell.blog.163.com/blog/static/220914034201361933341602/

一、  定义


1.  KVC的定义


KVC,即:Key-Value Coding,它是一种通过字符串去间接操作对象属性的机制,是KVO实现的基础。


2.  KVO的定义


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


 


二、  优点


1.   KVO的优点


当有属性改变时,KVO会提供自动的消息通知,开发人员不需要自己去实现这样的方案,因为这个方案已经被明确定义,获得框架支持,可以方便地采用,不用添加代码设计自己地观察者模型,另外,KVO支持多个观察者观察同一个属性,以及相关的值。


三、  使用方法


    1.   KVC的使用方法


KVC是KVO的基础,所以一般是和KVO结合使用,它主要有以下两种方法:


(1)setValue: forKey: forKey只能设置类属性


(2)valueForKey: 取值


(注意事项,在使用的时候,Key值不能写错,也就是属性的名字不能写错,大小写也是敏感的)


2.   KVO的使用方法


KVO在使用时非常简单,主要步骤为以下三步:


(1)注册一个观察者,指定被观察者的属性(利用KVC设置属性)


(2)实现回调方法


(3)移除观察者


四、  示例


设定一个场景,商品的价格显示在一个view上,当商品的价格改变时,实时更新view上商品的价格。

(1)首先定义一个数据模型

iOS 中KVO和KVC的使用 - snowyshell - snowyshell的博客

(2)然后定义该数据模型为controller的属性,并实例化,监听它的属性,并显示在view

iOS 中KVO和KVC的使用 - snowyshell - snowyshell的博客

(3)当点击button的时候,调用方法改变商品的price属性

iOS 中KVO和KVC的使用 - snowyshell - snowyshell的博客

(4)实现回调方法

iOS 中KVO和KVC的使用 - snowyshell - snowyshell的博客

(5)最后要移除观察者

 

iOS 中KVO和KVC的使用 - snowyshell - snowyshell的博客
 

五、总结

    KVO这种编码方式使用起来很简单,很适用于数据模型修改后,引发的UIVIew的变化这种情况,就像上边的例子那样,当更改属性的值后,监听对象会立即得到通知。


0 0
原创粉丝点击