0

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

4

1 回答 1

1

使用:而不是==.

尝试:

extension CollectionType where Generator.Element: FooClass {
于 2015-08-31T14:29:58.580 回答