2

简单地说,我有一个泛型类Class1<X:Class2<Y>>,据我所知,Swift 迫使我Y在声明中对类型进行硬编码Class1,但我需要YX.

长版

我有一个泛型类 DataSource<T:GenericItem>,它不是由非泛型实现(如ItemsDataSource:DataSource<Item>)子类化的。

现在我想创建一个通用控制器,它可以与我的 generic 的子类一起使用DataSource

所以我像这样声明控制器TableViewController<DS:GenericDataSource<GenericItem>>,但在这种情况下,我无法使用作为它自己参数DataSource的子类的参数对其进行子类GenericItem化(即我不能声明SuperTableViewController<ItemsDataSource>,因为ItemsDataSource具有Item通用参数而不是其父参数GenericItem)。

知道如何创建这样的通用控制器吗?

4

1 回答 1

-1

也许这样的事情会起作用:

class Class2<Y> { }

class Class1<X, Y where X: Class2<Y>> { }
于 2016-04-06T19:29:19.450 回答