美文网首页
代理设计模式

代理设计模式

作者: Coder007 | 来源:发表于2016-05-04 17:47 被阅读38次

    代理设计模式

    • 代理设计模式的总结:

      • 如果你想监听别人的一些行为,那么你要成为别人的代理
      • 如果你想告诉别人一些事情,那么就让别人成为你的代理
    • 代理设计模式的开发步骤

      • 需要写一份协议
        • 协议名字格式:控件名 + Delegate
      • 在协议里面声明一些代理方法
        • 一般都使用@optional,表示可选
        • 也可以写@@required,表示必须实现
      • 声明一个代理属性@property (nonatomic, weak) id<代理协议> delegate;
        • 一定要用weak,这里就不说为什么了
        • delegate这个有的时候是不能使用的,特别是控件自身有这个属性的时候,这个时候可以用别的名称,比如:xxxDelegate
      • 在内部发生某些行为时,调用代理对应的代理方法,通知代理内部发生什么事
      • 设置代理:xxx.delegate = yyy
      • yyy对象遵守协议,实现代理方法
      • 在需要执行代理方法的时候,调用对应的方法
    @protocol YWLoadMoreFooterDelegate <NSObject>
    @optional
    - (void)loadMoreFooterDidClickLoadMoreButton:(YWLoadMoreFooter *)footer;
    @required
    - (void)loadMoreFooterDidClickHideButton:(YWLoadMoreFooter *)footer
    @end
    
    // 代理属性
    @property (nonatomic, weak) id<YWLoadMoreFooterDelegate> delegate;
    
    // 设置代理
    footer.delegate = self;
    
    // 触发代理方法
    if ([self.delegate respondsToSelector:@selector(loadMoreFooterDidClickLoadMoreButton:)]) {
        [self.delegate loadMoreFooterDidClickLoadMoreButton:self];
    }
    
    

    相关文章

      网友评论

          本文标题:代理设计模式

          本文链接:https://www.haomeiwen.com/subject/yvorrttx.html