IOS-代理模式

代理设计模式的作用:

1.A对象监听B对象的一些行为,A成为B的代理

2.B对象想告诉A对象一些事情,A成为B的代理


代理设计模式的总结:

    如果你想监听别人的一些行为,那么你就要成为别人的代理

    如果你想告诉别人一些事情,那么就让别人成为你的代理

    

代理设计模式的开发步骤

    1.拟一份协议(协议名字的格式:控件名 + Delegate),在协议里面声明一些代理方法(一般代理方法都是@optional

    2.声明一个代理属性:@property (nonatomic, weak) id<代理协议> delegate;

    3.在内部发生某些行为时,调用代理对应的代理方法,通知代理内部发生什么事

    4.设置代理:xxx.delegate = yyy;

    5.yyy对象遵守协议,实现代理方法


示例程序:

程序结构如下,控制器将作为footer类的代理,并且实现代理类中的方法,在footer类中判断控制器有没有实现代理类中的方法,如果有就会调用控制器中的代理方法。

1.控制器和footer类的关系图如下:



2.在footer类的头文件中,

先声明好LYLoadMoreFooterDelegate代理,可以认为就是一个提供方法的接口,<NSobject>表示支持任何对象,@optional表示下面的方法实现方式为非强制。然后声明一个代理对象delegate,这个对象要求为实现了<LYLoadMoreFooterDelegate>协议(接口)的对象(就是下面的控制器对象,不管是谁作为被赋值为这个对象都必须实现了代理或者说接口的方法)。



3.在footer类的.m文件中,

在需要调用代理类的代理方法的地方,首先判断下代理类是否真的实现了需要调用的代理方法,如果有实现就调用。



4.在控制器.m文件中,

首先要实现 LYLoadMoreFooterDelegate 这个(代理/接口)。



然后在首次加载的方法中,实例化出footer类,并且给footer类的delegate对象赋值为self,表示自己成为footer对象的代理,下面的方法正是成为代理后要实现的方法。



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值