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

时间:2018-12-26 00:17:28

标签: ios swift delegates protocols

我想知道如何快速使用协议和委托。我有点经验丰富的程序员(大约6个月的经验),但我仍然感到困惑。谢谢!


新问题:

如何快速使用委托和协议?

1 个答案:

答案 0 :(得分:1)

协议:

将协议视为一种术语。对象之间相互交谈是一种专门的词汇。协议定义了一组保证与该协议“符合”的对象具有的方法和属性。

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

侍应生不必知道那天晚上谁在工作。他们只下订单,厨师做饭。实际上,厨师甚至不需要是人类。如果您可以建造一个能够理解并遵循短期烹饪协议并可以烹饪食物的机器人,则可以用机器人代替人类,侍应生根本不需要改变他们的工作方式

一个协议非常像那样。

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


代理:

委托是执行特定任务的对象,可以保证理解特定协议。在上面的示例中,短期订单是餐厅的代表。您不知道什么代表对象-您只知道它知道如何烹饪食物。您可以用其他的短期厨师来代替短期厨师,只要它们都符合短期厨师协议,一切工作就完全一样。

委托也可以是用于自定义另一个对象的行为的对象。例如,对于UITableViews,委托执行诸如指定单元格的行高,确定可以选择的单元格,处理选择动作,提供页眉/页脚视图之类的操作。

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