//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄
一、delegate优势
1. 非常严格的语法。所有将听到的事件必须是在 delegate 协议中有清晰的定义。2. 如果 delegate 中的一个方法没有实现那么就会出现编译警告 / 错误
3. 协议必须在 controller 的作用域范围内定义
4. 在一个应用中的控制流程是可跟踪的并且是可识别的;
5. 在一个控制器中可以定义定义多个不同的协议,每个协议有不同的 delegate
6. 没有第三方对象要求保持/监视通信过程。
7.能够接收调用的协议方法的返回值。这意味着delegate能够提供反馈信息给controller
1. 需要定义很多代码: 1. 协议定义; 2.controller 的 delegate 属性; 3. 在 delegate 本身中实现 delegate 方法定义
2. 在释放代理对象时,需要小心的将 delegate 改为 nil 。一旦设定失败,那么调用释放对象的方法将会出现内存 crash
3.在一个controller中有多个delegate对象,并且delegate是遵守同一个协议,但还是很难告诉多个对象同一个事件,不过有可能。
谢谢!!!