代理
在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的这个方法
}