swift+delegate+理解
时间: 2023-11-25 18:51:26 浏览: 141
在iOS开发中,Delegate是一种常见的设计模式,它允许一个对象将一些任务委托给另一个对象来完成。在Swift中,Delegate通常是通过协议来实现的。下面是一个简单的例子,演示了如何在Swift中使用Delegate模式:
1.定义协议
```swift
protocol MyDelegate {
func didTapButton()
}
```
2.定义委托方
```swift
class MyButton {
var delegate: MyDelegate?
func buttonTapped() {
delegate?.didTapButton()
}
}
```
3.定义代理方
```swift
class ViewController: UIViewController, MyDelegate {
let myButton = MyButton()
override func viewDidLoad() {
super.viewDidLoad()
myButton.delegate = self
}
func didTapButton() {
print("Button tapped!")
}
}
```
在上面的例子中,我们定义了一个名为MyDelegate的协议,它只有一个方法didTapButton。然后我们定义了一个名为MyButton的类,它有一个delegate属性,类型为MyDelegate。当按钮被点击时,它会调用delegate的didTapButton方法。最后,我们定义了一个名为ViewController的类,它遵守了MyDelegate协议,并实现了didTapButton方法。在viewDidLoad方法中,我们将myButton的delegate设置为self,这意味着ViewController将成为MyButton的代理方。
阅读全文