【发布时间】:2015-10-26 23:25:52
【问题描述】:
我有一个类,它接受一个通用的class Collection: <T: Model>(Model 是一个类)和一个协议(Resource),Collection 的一些子类实现:
class Collection: <T: Model> {
typealias Callback = (result: Collection <T>) -> ()
}
protocol Resource {...}
是否可以编写一个协议扩展,其中Self 是Collection 的一个实例?
尝试使用采用泛型的类来扩展协议:
extension Resource where Self: Collection {
func fetch() {}
}
给予:
对泛型“集合”的引用需要 <...>
中的参数
尝试使用协议扩展接受泛型的类:
extension Collection where Self: Resource {
func fetch(callback: Callback?) {}
}
给予:
'Self' 仅在协议中可用或作为类中方法的结果使用
我不确定如何继续。目标是该函数仅在符合 Resource 的 Collection 实例上可用。
【问题讨论】:
标签: swift