代理

设置代理的目的是为了降低类耦合度   

如下是比较标准的代理写法

当自身的代理有可以响应的方法时

if ([self.delegate respondsToSelector:@selector(setTitle:)])

才去调用这个代理

 {

   [self.delegate setTitle:self.btn.titleLabel.text];

 }

和起来就写成如下

在类a中

1.声明代理中包含的方法

2.设置代理属性,指定触发方法

-(void)doneClick:(UIButton *)btn{

    if ([self.delegate respondsToSelector:@selector(setTitle:)]) {

        [self.delegate setTitle:self.btn.titleLabel.text];

    }

}

假设类b是响应者

3.响应者要先遵循代理协议,然后a.delegate = self,最后才能执行代理方法

与block 通知中心等方法相比,代理是工作中最常用也是大家最容易接受的方法!初学的朋友们一定要掌握!

原文地址:https://www.cnblogs.com/isItOk/p/4777091.html