许多时候对代理的使用原理不太明了,今天就好好分析下代理
一:什么是代理?
把A对象要做的事情委托给B对象去做。那么B对象就是A对象的代理
二:代理的作用?
就是帮助 A 去做一些 A 委托 B 的一些事情(实现代理方法)
三:代理的使用场合
代理适合一个对象对应一个对象时使用,即嵌套层次比较简单时
网上借鉴一张图片(谢谢原图作者)
以上都是可以使用代理的情况,都是把对象 B 作为 对象A 的代理
====================================================
好的,重点来了
代理的使用步骤:
1.先明确谁是代理?委托内容是什么?
2.定义代理协议:控件类名 +Delegate (@protocol协议名<NSObject>)
3.定义代理方法:
a.一般代理方法都是@optional(可实现也可不实现)
b.代理方法名一般为控件名
c.至少包含一个参数,把控件自身传出去
4.设置代理对象(delegate)(比如:cell.delegate = xxxx;)
a.delegate 遵守协议
b.delegate 实现协议里该实现的方法
5.在恰当时刻调用代理方法用来通知代理发生什么事情(调用之前判断代理对象是否实现了该代理方法)
有什么描述不清楚的,互相交流,谢谢!