对象.delegate=self的理解

整理自:http://www.cocoachina.com/ask/questions/show/87430

各位大神,对象.delegate=self是啥意思,委托的意思不就是自己的任务交给其他人去做么,那么按这么理解自己的任务还需要委托么?望高手解惑.谢谢
对象.delegate=self的理解
“委托的意思不就是自己的任务交给其他人去做么”你这么理解是对的
对象.delegate=self的意思就是对象的任务交给self去做  对象!=self  
假如你有对象A 对象B
A是B的成员变量
class B
{

        member A

}

在B中写这么一句“A.delegate=self”
按你的理解 应该是A的任务交给B去完成 理解了没
对象.delegate=self的理解
对象.delegate=self的理解
其实还有两方面的理解:

1.委托是继承的一种实现。比如A委托 给B , B实现了A中的方法。有点类似B继承了A。

2.委托方法能够读取被委托对象的属性和方法,这点可以部分解答了你问的“委托必要性”。

比如A委托 给B,在B中实现的委托方法就可以像A中的其他方法一样访问B中的属性。
对象.delegate=self的理解
自己能做的就不用给别人做了。

把delegate给别人的话,是要别人处理一些数据返回到自己
你是boss,你有个专职秘书,给客户传达文件,需要你自己动手么?告诉小秘,去把这个资料给客户发过去.

小秘送完了,告诉你,老板资料送完了,可以进行下一个流程了.

对象.delegate=self的理解

上一篇:设计模式(8) 组合模式(COMPOSITE)


下一篇:HDU--杭电--4004--The Frog's Games--二分