是否可以在(默认的a)协议中创建变量?具体来说,我有一个协议所需的变量:
protocol SearchHandlingDelegate: class {
...
var lastSearchTerm: String { get set }
...
}
并且希望在协议扩展中具有默认的实现方式:
extension SearchHandlingDelegate {
...
var lastSearchTerm: String {
set { lastSearchTerm = newValue }
get { return lastSearchTerm }
}
...
}
但这是一个无底的递归自调用循环......我可以让它返回另一个变量的值,但是通过协议的默认实现它不可能真的这样做...
答案 0 :(得分:2)
您可以为计算值提供get / set属性的默认实现,但不能从扩展名向类型添加存储。