我试图为包含特定类型FooType元素的集合类型创建扩展,这很好用:
extension CollectionType where Generator.Element == FooClass
{
func doSomething()
}
let collectionType = [FooClass]()
collectionType.doSomething()
我的问题是我也希望这个扩展适用于包含Foo类子类的集合类型:
let collectionType = [FooSubclass]()
collectionType.doSomething() // Doesn't work
我可以覆盖" =="运算符和循环遍历超级类链,直到我得到匹配但不确定这是否是正确的方法。
public func ==(t0: Any.Type?, t1: Any.Type?) -> Bool
我在where子句中遗漏了哪些内容可以解决这个问题,还是我完全错了?
答案 0 :(得分:1)
使用:
代替==
。
尝试:
extension CollectionType where Generator.Element: FooClass {