【发布时间】:2023-03-27 02:44:01
【问题描述】:
我们可以像下面这样生成协议:
protocol SomeDelegate {
typealias T
func xxx(x: T)
}
并使某些类符合它:
class AA: SomeDelegate {
typealias T = Int
func xxx(x: T) {
// do some thing
}
}
我的问题是如何声明一些符合生成协议的属性,如下所示:
class BB {
var delegate: SomeDelegate
}
上面的代码会报错:
Protocol 'SomeDelegate' can only be used as a generic constraint
because it has Self or associated type requirements
看来我可以将协议用作委托,如下所示:
class BB {
var delegate: AA?
}
但是,这不是我想要的,这会导致我的委托不能继承其他父类
【问题讨论】: