博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 协议 委托 代理 delegate
阅读量:6590 次
发布时间:2019-06-24

本文共 1202 字,大约阅读时间需要 4 分钟。

角色

委托方 = 老板

代理方 = 员工
协议 = 合同


说明

委托方传递信息或者事件到代理方,代理方执行相关操作。

翻译:老板把工作材料和工作内容交给员工,员工去干活。


流程

委托方声明协议,并持有委托对象属性,调用代理方执行操作。

翻译:

1. 老板提供合同
2. 员工签名
3. 老板在他的公司里加上这号人
4. 老板分配工作
5. 员工干活


代码

  1. 在老板的.h文件里面写好合同
MyView.h//委托方声明协议@protocol MyViewDelegate 
//可选实现方法@optional -(void)optionalFunc;//必须实现方法@required -(void)requiredFunc;@end复制代码
  1. 员工签名
MyViewController.m//代理方遵守协议@interface MyViewController () 
@property(nonatomic,strong)MyView * myView;@end复制代码
  1. 老板在他的公司里加上这号人
MyView.h//委托方声明代理属性 注意要用weak修饰@interface MyView : UIView@property(nonatomic,weak)id
delegate;@end复制代码
MyViewController.m@implementation MyViewController- (void)viewDidLoad {    [super viewDidLoad];    [self.view addSubview:self.myView];}-(MyView *)myView{    if (!_myView) {        _myView = [[MyView alloc] initWithFrame:self.view.bounds];        _myView.backgroundColor = [UIColor whiteColor];        //持有代理        _myView.delegate = self;    }    return _myView;}@end复制代码
  1. 老板在自己的.m文件分配工作
MyView.m//调用代理 调用前判断是否有方法实现if ([self.delegate respondsToSelector:@selector(requiredFunc)]) {    [self.delegate requiredFunc];}复制代码
  1. 员工在自己的.m文件干活
MyViewController.m//实现协议方法- (void)requiredFunc{    NSLog(@"requiredFunc");}复制代码

转载地址:http://yruio.baihongyu.com/

你可能感兴趣的文章
构建安全的Xml Web Service系列之初探使用Soap头
查看>>
触摸识别技术将被智能机抛弃?它还能应用于这些安全系统识别
查看>>
基于AForge.Net框架的扑克牌识别
查看>>
可扩展Web架构与分布式系统
查看>>
爱润妍代理模式营销系统
查看>>
ZOJ Problem Set - 3758 素数
查看>>
Knockout应用开发指南 第九章:高级应用举例
查看>>
用无向带权图实现校园导航系统
查看>>
再谈pipeline-filter模式
查看>>
华山论剑之契约式编程与防御式编程
查看>>
iOS工程中删除默认的并使用自建的ViewController后黑屏
查看>>
当开源库碰到错误怎么办?
查看>>
计算机组成原理与机构期末复习的概念
查看>>
HTAP数据库——HybirdDB for MySQL产品和典型方案介绍
查看>>
YUV 像素格式
查看>>
您所在企业是否需要首席数据官?
查看>>
OpenStack 实现技术分解 (5) 应用开发 — 使用 OpenStackClients 进行二次开发
查看>>
安徽省大数据产业联盟成立
查看>>
星球大战图标设计推荐
查看>>
推动商业运营 IDC云计算路演至上海金桥
查看>>