我怎么知道什么时候使用协议和委托,它们是什么?(快速 4.2)

火星人32

我想知道如何在 swift 中使用协议和委托。我是一位经验丰富的程序员(大约 6 个月的经验),但我仍然感到困惑。谢谢!


新问题:

如何在 swift 中使用委托和协议?

邓肯

协议:

将协议视为一种行话。它是对象用来相互交谈的专用词汇。协议定义了一组方法和属性,保证“符合”该协议的任何对象都具有这些方法和属性。

想象一个快餐厨师。临时厨师知道餐厅的行话。“我需要一个#7,嗯,除了洋葱以外的所有东西。”

侍应生不需要知道当晚谁在工作。他们只是下订单,厨师就会做饭。事实上,厨师甚至不需要是人类。如果你能建造一个机器人,它能够理解并遵循速食协议,并能烹饪食物,你就可以用机器人代替人类,而服务员根本不需要改变他们的工作方式.

协议非常类似。

代表使用协议,但这不是他们使用的唯一方式。


代表:

委托是执行特定工作的对象,并且保证理解特定协议。在上面的例子中,快餐厨师是餐厅的代表。您不知道委托对象是什么——您只知道它知道如何烹饪食物。您可以用不同的短期厨师替换短期厨师,只要它们都符合短期厨师协议,一切都完全相同。(委托通常被定义为符合协议的对象,而不是特定的类。)

委托也可以是用于自定义另一个对象行为的对象。对于UITableViews,例如,该委托做事喜欢指定细胞,确定哪些细胞可被选择,把手选择动作的行高度,提供了页眉/页脚的观点,和类似的东西。

您经常提供一个委托来自定义复杂 Apple UI 对象(如表视图)的行为。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我们应该知道什么注意事项和警告有关,使用新的“APK签名方案V2”是什么时候?

我什么时候知道我捕获了WPA 4路握手?

在“ L [2:4]”中,“ 2:4”是什么?

Spring Framework 4终止销售是什么时候?

我怎么知道什么时候使用枚举或子类?

我怎么知道什么时候使用支持类?

Bootstrap 4-什么时候应该使用行?

什么时候不使用neo4j?

匕首2:什么时候使用构造函数注入,什么时候使用字段注入?

filevault2什么时候加密我的数据?

我们什么时候在实践中使用“2>&1”?

为什么2 mod 4 = 2?

角2动画vs CSS动画-什么时候使用?

我怎么知道什么时候停止训练我的 CNN?

Python:(1,2,3)和[1,2,3]有什么区别,什么时候应该使用它们?

我怎么知道懒惰的umount -l什么时候完成?

我怎么知道什么时候UIDynamicAnimator处于静止状态?

我怎么知道图书馆什么时候满载

我怎么知道什么时候安装了字体?

“Z4mainE2”是什么意思?

[Core 4] [Logical / Core 2]是什么意思?

什么时候以及为什么要在angular4中使用依赖注入令牌

我怎么知道什么时候使用哪个Hyperledger Fabric Docker容器环境变量

在角度材料 2/4 中使用数据表的最佳解决方法是什么?

为什么2 == 4不返回false?

im2col是什么时候首次发明用于CNN的?

我在log4j2.xml中的某些属性前面注意到了前缀“ sd:”-它们代表什么?

rails 4什么时候需要“ inverse_of”?

mule 4 http listener——重连什么时候用?