Swift 中使用协议代理的方式有两种:

  1. 通过类的属性来设置代理:在协议中定义一个代理属性,类实现协议时将自身赋值给代理属性。然后在需要调用代理方法的地方,通过代理属性来调用。
protocol SomeProtocol {
    var delegate: SomeDelegate? { get set }
}

class SomeClass: SomeProtocol {
    var delegate: SomeDelegate?

    func doSomething() {
        delegate?.didSomething()
    }
}
  1. 通过协议扩展来设置代理:在协议的扩展中定义一个默认实现的方法,然后在类中实现该方法即可。
protocol SomeProtocol {
    func doSomething()
}

extension SomeProtocol {
    func doSomething() {
        // 默认实现
    }
}

class SomeClass: SomeProtocol {
    func doSomething() {
        // 自定义实现
    }
}

以上两种方式都可以实现协议代理,选择哪种方式取决于具体的需求和设计


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

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