代理设计模式的作用
- A对象监听B对象的一些行为,A成为B的代理
- B对象想告诉A对象一些事情,A成为B的代理
代理设计模式的总结
- 如果你想监听别人的一些行为,那么就要成为别人的代理
- 如果你想告诉别人一些事情,那么就要成为别人的代理
代理设计模式的开发步骤
- 拟一份协议(协议名字的格式:控件名儿 + Delegate),在协议里面声明一个方法(一般方法用@optional)
- 声明一个代理属性
@property(nonatomic , weak)id <XXX> XXX;
- 在内部发生某些行为时,调用代理对应的代理方法,通知代理内部发生什么事
- 设置代理 xxx.delegate = yyy;
- yyy对象遵守协议,实现代理方法
代理和通知的区别
- 代理:1个对象只能告诉1个对象发生了什么事
- 通知:1个对象可以告诉多个对象发生了什么事(多对多)
KVO KVC
- KVC : Key Value Coding, 常见作用:给模型属性赋值
- KVO : Key Value Observing, 常见作用:监听模型属性值的改变