我正在尝试为包含某种 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 子句中遗漏了可以解决此问题的内容,还是我做错了?