什么是delegate
delegate就是委托模式者祖,將一件屬于委托者做的事情立莉,交給另外一個被委托者來處理。一個標(biāo)準(zhǔn)的委托由以下部分組成:
協(xié)議的聲明:用協(xié)議(Protocol)來申明哪些方法被委托出去七问。
//代理的創(chuàng)建
@protocol EventViewDelegate<NSObject>
@optional
//代理方法
- (void)sendValue:(NSString *)value;
@end
委托者申明一個屬性:委托者里有一個屬性代表被委托者蜓耻,使用weak來修飾
//聲明協(xié)議變量
@property(nonatomic, weak)id<EventViewDelegate> delegate;
被委托者聲明實現(xiàn)協(xié)議:被委托者需要聲明自己實現(xiàn)了協(xié)議
//實現(xiàn)協(xié)議方法
- (void)sendValue:(NSString *)value{
NSLog(@"eventView:%@",value);
}
delegate的用途
- 傳遞事件
傳遞事件就是希望A發(fā)生了什么事情,希望B知道并在自己的類里面做出某些反應(yīng)烂瘫。 - 確定事件可執(zhí)行
當(dāng)A需要執(zhí)行某個事件時媒熊,A不確定是否可執(zhí)行奇适,希望B回應(yīng)下。 - 傳遞值
當(dāng)A跳到B再返回時芦鳍,將B的值回傳給A嚷往。