为通用协议实现提供具体类型
Provide concrete type for Generic Protocol implementation
是否可以执行以下操作:
protocol A: class {
typealias T: AnyObject
}
extension A {
func testA(a:Self, _ t:T)->Void{
print(a, t)
}
}
class B:A {
typealias T = String
}
换句话说,我有协议并且想在符合它的 class 中提供具体类型。
应该没问题。您拥有的代码的唯一问题是 String
不是 AnyObject
.
您只需要:
protocol A: class {
typealias T
}
extension A {
func testA(a:Self, _ t:T)->Void{
print(a, t)
}
}
class B:A {
typealias T = String
}
是否可以执行以下操作:
protocol A: class {
typealias T: AnyObject
}
extension A {
func testA(a:Self, _ t:T)->Void{
print(a, t)
}
}
class B:A {
typealias T = String
}
换句话说,我有协议并且想在符合它的 class 中提供具体类型。
应该没问题。您拥有的代码的唯一问题是 String
不是 AnyObject
.
您只需要:
protocol A: class {
typealias T
}
extension A {
func testA(a:Self, _ t:T)->Void{
print(a, t)
}
}
class B:A {
typealias T = String
}