在Swift中了解委派
Swift是最令人困惑的主题之一。 在本文中,您将从使用原因开始,并以示例说明如何实现在对象之间传递数据的示例来完全理解委托。 我们将通过六个简单的步骤探索授权。
当发生特定操作时,“ 委托” 是一种设计模式,允许将数据从一个对象传递到另一个对象
我们为什么使用委派? 每当我们试图将数据从一个对象传递到另一个对象时!
在本文中,我们将练习在TouchableView和ViewController之间使用委托和协议来传递数据。 单击蓝色圆圈时,在输出中将显示消息“这是来自委托人的消息”。
首先,请先下载该入门项目!
打开TouchableView.swift并找到第一步。 首先创建一个协议并将其命名为tapDelegate 。 该协议可以具有多种功能。 对于这种情况,我们将创建一个名为tappedButton的函数。
协议是一个蓝图 。 该蓝图列出了所有必需的要求,例如方法和属性 。
在第一步中,该协议被类采用。 该类为我们提供了一种实现协议内部创建的功能的方法。
出于可读性考虑,使用“代理”一词来命名该协议是一个好习惯。
让我们创建一个委托属性并将“类型”设置为协议。 确保在前面添加关键字weak ,并将类型设置为带问号的可选。 弱关键字用于避免保留周期和可能的内存泄漏。
一半! 我们想让ViewController知道 每当按下蓝色圆圈时。 为了建立连接,我们需要将在步骤1中在协议中创建的委托方法调用添加到handleTap函数。
ViewController从哪里获取数据? 从我们在TouchableView中创建的代表! 为了实现此目的的连接,我们将tapDelegate应用于ViewController 。 当协议被采用时,要求ViewController必须使用蓝图中列出的方法或属性。
为了符合协议,我们将创建蓝图中列出的功能,并在按下蓝色按钮时键入一条消息。
最后,我们将委托分配给self。 你为什么要问自己? Self引用类ViewController 。 由于ViewController是要委派的那个,因此我们将委托从touchableView设置为ViewController (自身)。
恭喜! 继续运行模拟器。 按下蓝色按钮,您应该会看到一条消息。 如果您没有在底部看到调试器区域,请按Xcode中的Command + Shift +Y 。 你会看到这个⬇️