什么是委托和委托方法

时间:2009-11-24 05:38:08

标签: iphone delegates cocoa-design-patterns

伙计们,请让我知道代表与...之间的区别代表方法及其差异及其用法???

4 个答案:

答案 0 :(得分:44)

很难解释,但委托代表另一个对象执行方法。当您在列表中选择项目时,表视图不知道该怎么做。相反,它必须向委托对象询问一个问题,特别是didSelectRowAtIndexPath。 tableview知道的唯一信息是用户点击的部分和行。因此,表视图通过基本上说“嘿,用户在第0节中点击了第4行做了一些事情来向委托对象提供此信息。”

委托对象找到didSelectRowAtIndexPath方法并执行其中的代码。

许多不同的对象有很多Delegate方法。例如,Text Field对象本身不能执行任何操作。相反,它使用委托来执行操作。如果按屏幕键盘上的回车键,文本字段会要求委托对象执行特定方法textFieldShouldReturn。如果为文本字段设置的委托没有textFieldShouldReturn方法,则当您按下Enter按钮时,文本字段将不知道该怎么做。

这有意义吗?

答案 1 :(得分:6)

委托是一个对象。委托方法是委托对象应该实现的方法。有些委托方法是必需的,有些则不是。在内部监督办公室,大多数代表都应遵守Objective-C协议;协议声明将告诉您哪些方法是可选的,哪些是必需的。

答案 2 :(得分:5)

委托只是对另一个对象的引用,而委托方法是委托的方法。

委托方法实现了回调机制,该机制通常将发送方作为要调用的参数之一。

答案 3 :(得分:0)

所有iOS应用都使用委托。即使是基本的。它已经在他们给你的代码中提供。在其他语言中,您可以使用类似继承的东西。

就像在现实世界中一样,委托代表某人/某事物或在这种情况下代表一个对象。

以UI对象为例,他们已经有了执行任务的方法。但是它们可以连接到您的viewController(对象/自定义类),并且可以将责任委托给您的对象。

要记住的一些事情:

  1. 这一切都是使用Delegate协议完成的。
  2. 这是一个自愿的事情。所以你的对象选择成为委托。
  3. 查看Delegate协议并实现方法。有些是可选的,有些是必需的。
  4. 确保委派对象已连接到您的对象。