delegate的理解与使用

什么是delegate

delegate就是委托模式,将一件属于委托者做的事情,交给另外一个被委托者来处理。一个标准的委托由以下部分组成:
协议的声明:用协议(Protocol)来申明哪些方法被委托出去。

//代理的创建
@protocol EventViewDelegate
@optional
//代理方法
- (void)sendValue:(NSString *)value;
@end

委托者申明一个属性:委托者里有一个属性代表被委托者,使用weak来修饰

//声明协议变量
@property(nonatomic, weak)id delegate;

被委托者声明实现协议:被委托者需要声明自己实现了协议

//实现协议方法
- (void)sendValue:(NSString *)value{
    NSLog(@"eventView:%@",value);
}

delegate的用途

  • 传递事件
    传递事件就是希望A发生了什么事情,希望B知道并在自己的类里面做出某些反应。
  • 确定事件可执行
    当A需要执行某个事件时,A不确定是否可执行,希望B回应下。
  • 传递值
    当A跳到B再返回时,将B的值回传给A。

你可能感兴趣的:(delegate的理解与使用)