转载本文需注明出处:微信公众号EAWorld,违者必究。
引言:无论用哪种语言进行软件开发,我们都会接触到设计模式,个人认为设计模式存在的意义在于:在某些需求下,采用适合的设计模式,使代码结构合理,从而提高代码的可读性、可扩展性、可移植性,此文将要讨论的是OC开发中的一种常用模式之一:观察者模式之KVO。KVO俗称键值观察(key-value observe),键值观察是当被观察的对象属性发生改变时,会通知到观察对象的一种机制。目录:
1、KVO的作用
2、KVO的使用方法
3、KVO的实现原理
4、KVO与KVC、代理、通知的区别
5、KVO实现过程中的注意事项无论用哪种语言进行软件开发,我们都会接触到设计模式,个人认为设计模式存在的意义在于:在某些需求下,采用适合的设计模式,使代码结构合理,从而提高代码的可读性、可扩展性、可移植性,此文将要讨论的是iOS开发中的一种常用模式之一:观察者模式之KVO。我们先看下官方文档给的KVO介绍:
翻译过来就是:KVO是运用isa混写技术实现自动观察键值的。isa指针是指向对象的类,本质上是指向类中的方法实现。当一个对象注册观察者时,这个对象的isa指针被修改指向一个中间类。永远不要用isa来判断一个类的继承关系,而是应该用class方法来判断类的实例。KVO俗称键值观察(key-value observe),键值观察是当被观察的对象属性发生改变时,会通知到观察对象的一种机制。1.KVO的作用
1、监听带有状态的基础控件,如开关、按钮等;
2、监听字符串的改变,当监听的字符串改变时,来做一些自定义的操作;
3、当数据模型的数据发生改变时,视图组件能动态的更新,及时显示数据模型更新后的数据,比如tableview中数据发生变化进行刷新列表操作,监听 scrollView的contentOffset属性监听页面的滑动.2.KVO的使用方法KVO的使用可分为自动监听和手动监听。1.自动监听1.1自动监听操作步骤:(1)添加观察者(2)在观察者中