您的位置:首页 > 移动开发 > IOS开发

iOS Delegate学习(送花ABC,一个悲伤的故事)

2014-05-19 06:47 162 查看
在学iOS开发的时候,常常遇到Delegate。今晚在hh的帮助下,我终于对它有了比较好的理解。现在,小陈将和各位看官聊聊Delegate。先来讲个故事吧:

害羞的小男生A决定向暗恋的小女生B送花。但由于自己太害羞,他决定请好哥们外向的小男生C帮忙送花。
为此,A和C制定了一个送花的协议。协议中有A想做却做不到的事情——送花。
C无条件答应了。于是C吭哧吭哧地带着玫瑰花送给了B。(至此,delegate已经成功执行)
后话是:这一切都让B看在了眼里,什么?B和C居然好上了。
哦!这是一个悲伤的故事。

我兴致勃勃地把这个故事用代码实现了。
代码中主要有以下文件:
1.ShyBoy类(害羞小男生)
2.OutgoingBoy类(害羞小男生的好哥们外向小男生)
3.GiveFlowersDelegate.h(放有害羞小男生制定的送花协议)
4.main.m(害羞小男生所暗恋的小女生;小女生把故事都看在眼里)

ShyBoy的粉丝们请擦干眼泪,以下是代码编写的主要步骤:
步骤1:制定一个送花的协议,协议中有害羞小男孩想做却做不到的事情——送花。(虽然不自己送花,但害羞小男孩还是要选择花的品种。)(声明协议和协议里的方法。协议里有委托方实现不了的而被委托方实现得了的方法。协议里的方法可以带参数。)



步骤2:害羞小男孩说自己是送花协议的发起者。(委托方声明一个delegate)



步骤3:害羞小男孩所能做的事情是让自己的代理人帮忙送花。害羞小男孩无法真正去送花,但还是能选择花的品种。(委托者调用delegate内的方法)



步骤4:外向小男孩接受送花协议( 被委托者(代理人)设置delegate,以便让委托者调用;)





步骤5:外向小男孩想好怎么送花(被委托者实现Delegate 所定义的方法。)



注:代码编写的步骤不一定要按照1-5.

步骤6:main.m与运行结果。





//delegate常被用于类间的传值。我会继续学习它。

参考文章:
http://leopard168.blog.163.com/blog/static/168471844201307112149221/
代码下载地址:
http://download.csdn.net/detail/ilikeprograming/7372547
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: