QHP_09cell代理设计模式
2016-04-23 本文已影响6人
风信子的梦想成真
代理模式的重要性:
1.A对象监听B对象的一些行为(比如控制器监听了footer的行为),A对象成为B对象的代理(对象就要告诉A对象一些东西)
2.A对象想告诉B对象一些事情,B对象要成为A对象的代理(比如UIScrollView告诉控制器什么时候滚动,是不是要让控制器成为它的代理)
代理设计模式的总结:
1.如果你想监听别人的行为,那么就要成为别人的代理
2.如果你想告诉别人一些内部的事情,那么就让别人成为你的代理
代理设计模式的开发步骤:
1.拟一份协议,(协议的格式是控件+Delegate)在协议里声明一些代理方法(一般代理方法是@optional)
2.声明一个代理属性
最重要的一点是声明代理属性必须要用weak3.在内部发生某些行为时,调用代理对应的代理方法,通知代理内部发生什么事(比如内部的按钮被点了,调用代理被你点的按钮方法,通知代理按钮被你点了)
标记部分如果代理实行了标记的那个方法,再去调用
4.设置代理 xxx.delegate = yyy;
5.yyy对象,遵守协议,实现代理方法;
代理和通知的区别:
代理:1个对象只能告诉另一个对象发生了什么事
通知:1个对象可以告诉N个对象发生了什么事