码迷,mamicode.com
首页 > 移动开发 > 详细

iOS基础 KVC和KVO

时间:2014-11-26 22:28:35      阅读:300      评论:0      收藏:0      [点我收藏+]

标签:blog   io   os   使用   sp   for   on   数据   div   

疯狂IOS讲义这本书之前一直一直觉得没什么用,看了做不出像样的程序出来,但是经过几天的学习发现,没有一定的ios基础,做的程序永远都是在模仿他人的程序,把他人的代码复制 粘贴。。。为什么能够实现?原理 是什么?不懂。。。所以 必须懂原理,为什么?

接下来就今天所学习的内容做一个小结;

首先介绍一下KVO和KVC,一个是键值编码一个是键值监听,我第一次听这个也是很困惑,这是个神马意思?键值是啥?监听 还懂一点 。。。

我们都知道之前我们都是通过setter和getter来设置和修改对象的属性,KVC和这种差不多,但是KVC允许字符串形式简介操作对象的属性,全称:Key Value Coding

,KVC有2个方法:第一个是:setvalue forKey:   为指定的属性设置值    第二个是   valueForKey: 获取指定属性的值 ,对应setter getter 

其中对于 setvalue forKey:方法,其底层执行机制如下:

1. 访问setter

2. 成员变量 _name

3. 成员变量 name

4 valueforUndefinedKey(该方法引发一个异常,导致程序结束)

当使用KVC方式操作的时候,某些属性可能不一定存在,那么就是自动调用 setvalue :forundefinedKey 和 valueForundefinedKey 方法 ,但是这2个方法默认的引发异常,这时候我们需要重写这2个方法,

-(void) setValue: (id)  vlaue forindefineKey: (id) key
{
NSLog(@"not cunzai",key);
}

 键值监听KVO简单说就是用来更新数据,ios应用程序通常会把组件分为 数据模型组件和视图组件,就是一个是存在内部数据的,一个是用户看到的,一旦数据模型组件发生了改变,那么就需要KVO监听然后对视图的组件更新!

主要分为三个步骤:

1.注册

2.重写  observeValueForKeyPath :ofObject:change:context

3.删除监听

iOS基础 KVC和KVO

标签:blog   io   os   使用   sp   for   on   数据   div   

原文地址:http://www.cnblogs.com/penger/p/4125053.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!