设置代理的目的是为了降低类耦合度
如下是比较标准的代理写法
当自身的代理有可以响应的方法时
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 通知中心等方法相比,代理是工作中最常用也是大家最容易接受的方法!初学的朋友们一定要掌握!