在 Swift 中,可以使用 protocol 关键字来定义一个代理协议。代理标注是指在协议中声明一个可选的代理属性,并定义代理方法。以下是一个示例:

protocol MyDelegate: class {
    func didSomething()
}

class MyClass {
    weak var delegate: MyDelegate?

    func doSomething() {
        // 执行一些操作
        delegate?.didSomething()
    }
}

class MyViewController: UIViewController, MyDelegate {
    let myClass = MyClass()

    override func viewDidLoad() {
        super.viewDidLoad()

        myClass.delegate = self
        myClass.doSomething()
    }

    func didSomething() {
        // 处理代理方法
    }
}

在上面的示例中,MyDelegate 是一个代理协议,声明了一个 didSomething() 方法。MyClass 是一个包含代理属性的类,当执行 doSomething() 方法时,会调用代理的 didSomething() 方法。

MyViewController 是一个视图控制器,它遵循了 MyDelegate 协议,并实现了 didSomething() 方法。在 viewDidLoad() 方法中,将 MyClass 的代理设置为 MyViewController 实例,并调用 doSomething() 方法。

通过使用代理标注,可以实现对象之间的通信和解耦

swift 代理标注

原文地址: https://www.cveoy.top/t/topic/hIc7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录