在Swift中了解委派

Swift是最令人困惑的主题之一。 在本文中,您将从使用原因开始,并以示例说明如何实现在对象之间传递数据的示例来完全理解委托。 我们将通过六个简单的步骤探索授权。

当发生特定操作时,“ 委托” 是一种设计模式,允许将数据从一个对象传递到另一个对象

我们为什么使用委派? 每当我们试图将数据从一个对象传递到另一个对象时!

在本文中,我们将练习在TouchableViewViewController之间使用委托和协议来传递数据 单击蓝色圆圈时,在输出中将显示消息“这是来自委托人的消息”。

首先,请先下载该入门项目!

打开TouchableView.swift并找到第一步。 首先创建一个协议并将其命名为tapDelegate 。 该协议可以具有多种功能。 对于这种情况,我们将创建一个名为tappedButton的函数。

协议是一个蓝图 。 该蓝图列出了所有必需的要求,例如方法属性

在第一步中,该协议被类采用。 该类为我们提供了一种实现协议内部创建的功能的方法。

出于可读性考虑,使用“代理”一词来命名该协议是一个好习惯。

让我们创建一个委托属性并将“类型”设置为协议。 确保在前面添加关键字weak ,并将类型设置为带问号的可选。 弱关键字用于避免保留周期和可能的内存泄漏。

一半! 我们想让ViewController知道 每当按下蓝色圆圈时。 为了建立连接,我们需要将在步骤1中在协议中创建的委托方法调用添加到handleTap函数。

ViewController从哪里获取数据? 从我们在TouchableView中创建的代表 为了实现此目的的连接,我们将tapDelegate应用于ViewController 。 当协议被采用时,要求ViewController必须使用蓝图中列出的方法或属性。

为了符合协议,我们将创建蓝图中列出的功能,并在按下蓝色按钮时键入一条消息。

最后,我们将委托分配给self。 你为什么要问自己? Self引用类ViewController 。 由于ViewController是要委派的那个,因此我们将委托从touchableView设置为ViewController (自身)。

恭喜! 继续运行模拟器。 按下蓝色按钮,您应该会看到一条消息。 如果您没有在底部看到调试器区域,请按Xcode中的Command + Shift +Y 。 你会看到这个⬇️