iOS但为什么委托

时间:2010-12-04 05:50:14

标签: ios delegates iphone-sdk-3.0

我在iOS编程中随处可见使用了委托......我不确定使用的是什么。

你能解释一下吗?

2 个答案:

答案 0 :(得分:5)

当您需要对象的行为彼此不同时,您可以为它们提供不同的实现(通常通过子类化,就像使用UIViewController一样),或者通过委派。不同之处在于,第一种情况下的多态性是通过制作不同的 类型 的对象来实现的,而在第二种情况下,多态性是通过使相同类型的对象 委托 任意类型对象的某些功能。

人们如此喜欢委托的原因是它允许更清晰的类层次结构:你不需要为每个小东西创建子类,只是为了响应一些钩子。这就是我们使用委托的原因。

如果您想了解授权机制以及如何在自己的课程中完成,欢迎您查看我的文章Using custom delegates in Objective-C

答案 1 :(得分:1)

这都是可选的函数调用。

对象可以设计为可选地调用其他对象中的方法。其中一些可选方法可以组合成一个委托模式。

委托只是想要被这些方法调用的另一个对象。设置委托时,只要选项出现,就让调用对象知道有人想要调用(接受选项),以及调用谁(“委托”)。

如果没有人想成为委托,那么带有该选项的调用对象通常只会执行一些默认行为。因此,这种模式(“委托”)是一种能够修改默认值的好方法,但不必这样做,并且不需要创建大量子类(在某些人看来,这可能会更加混乱)。

这是另一个Stack Overflow answer about Delegates,我回了一会儿。

有关这些设计模式,请参阅Apple's Documentation