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