我正在尝试将数据传递给在扩展中实现的委托方法但我无法执行此操作,因为扩展无法存储属性。如何完成它?
答案 0 :(得分:1)
您可以使存储的属性成为委托协议的要求。
protocol MyProtocol {
var aProperty: String { get set }
func aProtocolMethod()
}
对于MyProtocol的相应扩展,可以直接访问该属性。
extension MyProtocol {
func aProtocolMethod() {
print("property:" + aProperty)
}
}
在符合MyProtocol的类中,它应该实现变量来存储数据。
class MyClass: MyProtocol {
var aProperty: String
init() {
self.aProperty = "some value"
}
}
let myClass = MyClass()
myClass.aProtocolMethod()