KVO奥秘】的更多相关文章

序言 在iOS开发中,苹果提供了许多机制给我们进行回调.KVO(key-value-observing)是一种十分有趣的回调机制,在某个对象注册监听者后,在被监听的对象发生改变时,对象会发送一个通知给监听者,以便监听者执行回调操作.最常见的KVO运用是监听scrollView的contentOffset属性,来完成用户滚动时动态改变某些控件的属性实现效果,包括渐变导航栏.下拉刷新控件等效果. 渐变导航栏 使用 KVO的使用非常简单,使用KVO的要求是对象必须能支持kvc机制--所有NSObjec…
转自:http://www.jianshu.com/p/742b4b248da9 序言 在iOS开发中,苹果提供了许多机制给我们进行回调.KVO(key-value-observing)是一种十分有趣的回调机制,在某个对象注册监听者后,在被监听的对象发生改变时,对象会发送一个通知给监听者,以便监听者执行回调操作.最常见的KVO运用是监听scrollView的contentOffset属性,来完成用户滚动时动态改变某些控件的属性实现效果,包括渐变导航栏.下拉刷新控件等效果. 渐变导航栏 使用 KV…
关于kvo,kvo能做什么? kvo作为cocoa框架的重要特性之一,在底层框架中被大量使用.在特定的场合使用该特性往往能够带来难以想象的好处,让整个方案变得相当简洁和优雅.比如大名鼎鼎的下拉刷新的svpulltorefresh框架,其实现采用了category动态添加属性和kvo结合的方案,在egoRefresh框架的基础上获得了极大的改善,使调用者所要书写的代码量直接下降了一个量级.其中的奥秘在于通过kvo很好的处理了frame变化的问题,调用者不用再处理frame相关的代码,仅需要聚焦下拉…
  目录 关于面试 官方文档 核心代码 (Key-Value Observing) 进阶(手动创建KVO) 关于isa指针 参考文章链接 一.关于面试 面试官:谈一谈你对KVO的理解? A:添加响应者,监听对象变化,当对象改变时调用代理. B:动态创建NSKVONotifying_XX类,修改被监听对象isa指针指向,只要调用对象的set方法, 就会调用NSKVONotifying_XX的set方法.本质:判断对象的set方法有没有被调用, 二.苹果官方文档描述 Automatic key-va…
大名鼎鼎的 X Window 大家肯定不陌生.都知道它是 Unix/Linux 下面的窗口系统,也都知道它基于 Server/Clinet 架构.在网上随便搜一搜,也可以找到不少 X Window 的介绍.有不少文章为了给用户留一个直观的印象,往往先让系统进入纯文本界面,然后使用 startx 来启动图形界面,或者直接使用 X 来启动 X Server,再然后运行一个 xterm 来做示范.我觉得以上这些文章对 X Window 的理解有限,不够深入,而且也不够新.所以,我这里写一篇<X Win…
文章结构如下: Why? (为什么要用KVO) What? (KVO是什么) How? ( KVO怎么用) More (更多细节) 原理 自己实现KVO 在我的上一篇文章浅谈 iOS Notification中,我们说到了iOS中观察者模式的一种实现方式:NSNotification 通知,这次我们再来谈谈iOS中观察者模式的另一种实现方式:KVO . Why? 假如,有一个person类,和一个Account类,account类中又有两个公开的属性,balance和interestRate,当…
1,KVC(键值编码)  Key Value Coding 1.1在C#中,可以通过字符串反射来获取对象,从而对对象的属性进行读写,Object-C中有同样的实现,通过字符串(属性名词)对对象的属性进行读写. 1.2KVC的操作方法由NSKeyValueCoding协议来定义,而Object对象实现该协议,所以所有的对象都具有KVC功能 动态设置:setValue:属性值 forKey:属性名    setValue: 属性值forKeyPath:属性路径 动态读取:valueForKey:属性…
原文链接:http://blog.csdn.net/dqjyong/article/details/7685933 前面分别讲了delegate.notification和KVO的实现原理,以及实际使用步骤,我们心中不禁有个疑问,他们的功能比较类似,那么在实际的编程中,如何选择这些方式呢? 在网上看到一个博客上详细的分析了三者之间的区别以及各自的优势,博文地址为http://blog.shinetech.com/2011/06/14/delegation-notification-and-obs…
KVC 键值编码    全称是Key-value coding,翻译成键值编码.它提供了一种使用字符串而不是访问器方法去访问一个对象实例变量的机制.        1.通过key(成员变量的名称)设置value(成员变量的值)    - (void)setValue:(id)value forKey:(NSString *)key;    2.通过keyPath(成员变量的路径)设置value(成员变量的值)    - (void)setValue:(id)value forKeyPath:(N…
1. KVC And KVO  的认识 KVC/KVO是观察者模式的一种实现  KVC全称是Key-value coding,翻译成键值编码.顾名思义,在某种程度上跟map的关系匪浅.它提供了一种使用字符串而不是访问器方法去访问一个对象实例变量的机制.KVO全称是Key-value observing,翻译成键值观察.提供了一种当其它对象属性被修改的时候能通知当前对象的机制.再MVC大行其道的Cocoa中,KVO机制很适合实现model和controller类之间的通讯. 2. KVC And…