代理设计模式(delegate)

使用场合

  • A想让B帮忙做一些事情,就让B成为A的代理
  • A想通知一下B发生了某些事情,或者想传递一些数据给B,就让B成为A的代理
  • B想监听A所做的一些事情,就让B成为A的代理

使用步骤

  • 定义一份协议
  • B要遵守协议,实现相应方法
  • A中要定义一个代理属性 id<协议> delegate;
  • 创建对象B,设置A的delegate属性为B对象

示例:

A体质测试需找一人代测(代理delegate),代测的人必须满足以下几个条件(协议protocol):

  • 跑步及格
  • 肺活量及格
  • 跳远及格
    B刚好满足了以上几个条件,则B可以成为A的代理,去代测体质测试

代理书写格式

协议格式(编码规范):              (UIScrollView)                                                    
协议名称:控件名称+Delegate        (UIScrollViewDelegate)                                           
协议方法名称:控件名称去掉前缀+含义   (- (void)scrollViewDidScroll:(UIScrollView *)scrollView;)             
在协议方法中将自己(触发事件的)控件传出去的目的是方便用于区分哪个控件触发了该方法                                                  
协议方法一般都设置为@optional                                                                        

你可能感兴趣的:(代理设计模式(delegate))