delegate的理解与使用

什么是delegate

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

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

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

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

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

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

delegate的用途

  • 传递事件
    传递事件就是希望A发生了什么事情,希望B知道并在自己的类里面做出某些反应。
  • 确定事件可执行
    当A需要执行某个事件时,A不确定是否可执行,希望B回应下。
  • 传递值
    当A跳到B再返回时,将B的值回传给A。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,135评论 1 32
  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 9,050评论 0 13
  • 1.设计模式是什么? 你知道哪些设计模式,并简要叙述?设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类型...
    龍飝阅读 2,180评论 0 12
  • 37.cocoa内存管理规则 1)当你使用new,alloc或copy方法创建一个对象时,该对象的保留计数器值为1...
    如风家的秘密阅读 882评论 0 4
  • 今天晚上做了深度反省,主要是反省我和母亲的关系。 两个小时,我把自己的思绪拉回童年时代,一件事一件事慢慢回忆,究竟...
    遇见腊梅阅读 486评论 4 1