简单来说,我有一个通用类Class1<X:Class2<Y>>
,据我所知,Swift迫使我在Y
的声明中硬编码Class1
,但我需要{{ 1}}变量以及Y
。
长版
我有一个泛型类X
类,它不是非泛型实现的子类(如DataSource<T:GenericItem>
)。
现在我想创建一个通用控制器,它可以使用我的通用ItemsDataSource:DataSource<Item>
的子类。
所以我声明控制器就像这个DataSource
,但是在这种情况下,我无法用TableViewController<DS:GenericDataSource<GenericItem>>
参数对它进行子类化
DataSource
的子类作为它自己的参数(即我不能声明GenericItem
,因为SuperTableViewController<ItemsDataSource>
具有ItemsDataSource
泛型参数而不是其父Item
)。< / p>
我知道如何创建这样的通用控制器?
答案 0 :(得分:-1)
也许这样的事情会起作用:
class Class2<Y> { }
class Class1<X, Y where X: Class2<Y>> { }