代理协议详解

代理

  在IOS开发中,代理很重要,代理是一对一的。当你在一个文件中做了某件事情,想告诉其它的文件,这时要用到代理。

  使用场合  专业术语:当A对象发生了一些事情,想告诉B对象,就然B成为A的代理

  B对象想监听A对象发生的一些事情,也让B成为A的代理。

  1.代理一般要定义一份协议:

    @protocol heardViewDelegate <NSObject>

       - (void)heardViewClick;//此方法代理必须实现如果想要代理不实现也可以,需要在方法前面加上@optional

     @end

  2.在头文件中声明一个代理属性

    @property (nonatomic, weak) id <heardViewDelegate>delegate;

  3.设置代理

     要想成为代理,必须要遵守协议

    @interfaceYGQViewController () <heardViewDelegate>//遵守协议

    heard.delegate = self;//让控制器成为它的代理

  4.实现代理方法

    - (void)heardViewClick

  {

      [self.tableViewreloadData];

  }

  5.代理只能设置一个代理属性,只能告诉一个人

  6.如果想要多个人都知道你做了什么事,想让很多人都知道,那么就用通知。

  7.严谨的写法

  if ([_delegate respondsToSelector:@selector(heardViewClick:)]) {//如果代理实现了这个方法

          [_delegate heardViewClick:self];//那么就调用代理的heardview的这个方法

        }

原文地址:https://www.cnblogs.com/yinqiang/p/3460286.html