A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

13黑马币
教教我代理到底有什么用,越简单越好

最佳答案

查看完整内容

没那么复杂的。 代理(Delegate)的使用场合 1、对象A内部发生了一些事情,想通知对象B 2、对象B想监听对象A内部发生了什么事情 3、对象A想在自己的方法内部调用对象B的某个方法,并且对象A不能对对象B有耦合依赖 4、对象A想传递数据给对象B …… 以上情况,结果都一样:对象B是对象A的代理(delegate) 使用代理(delegate)的步骤 先搞清楚谁是谁的代理(delegate) 定义代理协议,协议名称的命名规范:控件类名 + Delegate 1、定义代理方法 ...

5 个回复

倒序浏览
没那么复杂的。
代理(Delegate)的使用场合
1、对象A内部发生了一些事情,想通知对象B
2、对象B想监听对象A内部发生了什么事情
3、对象A想在自己的方法内部调用对象B的某个方法,并且对象A不能对对象B有耦合依赖
4、对象A想传递数据给对象B
……
以上情况,结果都一样:对象B是对象A的代理(delegate)

使用代理(delegate)的步骤
先搞清楚谁是谁的代理(delegate)
定义代理协议,协议名称的命名规范:控件类名 + Delegate

1、定义代理方法
代理方法一般都定义为@optional
代理方法名都以控件名开头
代理方法至少有1个参数,将控件本身传递出去

2、设置代理(delegate)对象  
1、代理对象遵守协议
2、代理对象实现协议里面该实现的方法

总结:在恰当的时刻调用代理对象(delegate)的代理方法,通知代理发生了什么事情
(在调用之前判断代理是否实现了该代理方法)
回复 使用道具 举报
我是来看答案的
回复 使用道具 举报
学习学习啊,:-D
回复 使用道具 举报
来学习的 路过
回复 使用道具 举报
学习了,感谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马