45.KVO(Key-Value-Observer)键值观察者
2015-12-05 10:35
302 查看
KVO:(Key-Value-Observer)键值观察者,是观察者设计模式的⼀种具体实现。
KVO触发机制:⼀个对象(观察者),监测另⼀对象(被观察者)的某属性是否发⽣变化,若被监测的属性发⽣的更改,会触发观察者的⼀个⽅法(⽅法名固定,类似代理⽅法)
KVO使⽤步骤:
1、注册观察者(为被观察者指定观察者以及被观察属性)
2、实现回调⽅法
3、触发回调⽅法(被观察属性发⽣更改)
4、移除观察者
KVO
KVO使⽤场景:MVC中M与C通信,M发⽣变化通知C。其中M是被观察者,C是观察者。
KVO注意事项:观察者销毁之前,移除观察者,否则会出现程序异常(给已经销毁的对象发送消息)
练习
给Man类的money属性添加观察者。money发⽣变化时,让self.view的背景颜⾊随机改变。
提⽰:界⾯需要包含⼀个输⼊框、⼀个按钮
首先1.创建一个继承于NSObject的Man类并声明一个money属性
在RootViewController.m中
相关文章推荐
- UIPageControl控件的常用属性
- 黑马程序员-Java中只读类String和StringBuffer、StringBuilder类)
- HDU-5538-House Building【2015长春赛区】
- 动画特效十九:自定义过度动画2
- Android之点击对话框(AlertDialog.Builder)外部区域不关闭对话框的设置
- [boost] build boost with intel compiler 16.0.XXX
- [boost] build boost with intel compiler 16.0.XXX
- SUID SGID STICKY理解
- arduino开发过程中编译问题undefined reference to `setup'的解决办法
- duilib进阶教程 -- 总结 (17)
- 2013 duilib入门简明教程 -- 总结 (20)
- 【android_温故知新】第 4 组 UI 组件:AdapterView 及其子类
- 远程调用服务(RPC)和消息(Message Queue)对比及其适用/不适用场合
- Pig_6. 数据摄取 & 输出 -- JSON, Avro, Parquet -- 待完善
- codeforces Guess a number!
- __cpuid
- Project Euler 94:Almost equilateral triangles 几乎等边的三角形
- hdu 5504 GT and sequence
- hibernate中的Query查询和criteria查询的区别
- 错误org.hibernate.PropertyAccessException: Null value was assigned to a property of的解决方法