iOS代表的目的是什么?

Lou*_*uis 11 ios

我理解一个委托在iOS中的作用,我看过示例代码,但我只是想知道这种封装的优点(而不是在主对象中包含委托方法).

Joh*_*ley 16

委托设计模式的优点是松散耦合.它使类A(委托)依赖于类B(委托类),而类B不必具有类A的任何知识.这确保了依赖关系仅是单向的,而不是循环的.

它还构成了Apple框架的基础(小写"f"),因为它允许它们在需要特定于您的应用程序的功能时适当地调用您的代码.例如,响应按钮点击或告诉表格查看应该有多少部分.


Pat*_*ick 11

委托是一种设计模式,不仅用于iOS,还用于许多其他语言.它使您可以在类层次结构中处理值和消息.


msk*_*skw 9

在iOS中,委托需要"委托"类来实现包含"委托"知道的方法的协议.还在关注?

委托类的实现将调用这些协议方法,但委托类将在其类中实现这些方法.

这样可以保持您的课程清洁.

实际上,如果可以向单个类添加新方法,则不需要委派.但是对于UIKIT的UIView类,Apple不会允许你在他们的类中添加新的实现.

如我错了请纠正我.


Nat*_*sha 6

iOS 中委托最常见的用途是在彼此不相关或部分相关的模块内建立通信。例如,在 UINavigationController 中向前传递数据非常简单,我们可以使用 segue。但是,向后发送数据有点棘手。在这种情况下,我们可以使用委托向后发送数据。

让我们调用与第一个控制器 ClassA 关联的类和与第二个控制器 ClassB 关联的类。第一个控制器通过前向连接连接到第二个控制器。我们可以通过这个 segue 将数据从 ClassA 传递到 ClassB。现在,我们需要将一些数据从 ClassB 传递给 ClassA,以便我们可以使用委托。

发送者类(ClassB)需要在其头文件(.h)中包含一个协议,并且在块中引用它作为委托,@interface ClassB .... @end。这个引用让 ClassB 知道它有一个委托。任何想要使用此 ClassB 的类都必须实现此协议所需的所有方法(如果有)。因此,接收者类 ClassA 将实现该方法,但调用将由发送者类 ClassB 进行。

这样,接收者类就不需要关心发送者类的内部结构,就可以接收到需要的信息了。