Swift 使用协议代理
Swift 中使用协议代理的方式有两种:
- 通过类的属性来设置代理:在协议中定义一个代理属性,类实现协议时将自身赋值给代理属性。然后在需要调用代理方法的地方,通过代理属性来调用。
protocol SomeProtocol {
var delegate: SomeDelegate? { get set }
}
class SomeClass: SomeProtocol {
var delegate: SomeDelegate?
func doSomething() {
delegate?.didSomething()
}
}
- 通过协议扩展来设置代理:在协议的扩展中定义一个默认实现的方法,然后在类中实现该方法即可。
protocol SomeProtocol {
func doSomething()
}
extension SomeProtocol {
func doSomething() {
// 默认实现
}
}
class SomeClass: SomeProtocol {
func doSomething() {
// 自定义实现
}
}
以上两种方式都可以实现协议代理,选择哪种方式取决于具体的需求和设计
原文地址: https://www.cveoy.top/t/topic/hFBb 著作权归作者所有。请勿转载和采集!