简单地说,我有一个泛型类Class1<X:Class2<Y>>
,据我所知,Swift 迫使我Y
在声明中对类型进行硬编码Class1
,但我需要Y
和X
.
长版
我有一个泛型类 DataSource<T:GenericItem>
,它不是由非泛型实现(如ItemsDataSource:DataSource<Item>
)子类化的。
现在我想创建一个通用控制器,它可以与我的 generic 的子类一起使用DataSource
。
所以我像这样声明控制器TableViewController<DS:GenericDataSource<GenericItem>>
,但在这种情况下,我无法使用作为它自己参数DataSource
的子类的参数对其进行子类GenericItem
化(即我不能声明SuperTableViewController<ItemsDataSource>
,因为ItemsDataSource
具有Item
通用参数而不是其父参数GenericItem
)。
知道如何创建这样的通用控制器吗?