Swift中的嵌套Generic

时间:2016-04-06 17:01:37

标签: swift nested-generics

简单来说,我有一个通用类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>

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

1 个答案:

答案 0 :(得分:-1)

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

class Class2<Y> { }

class Class1<X, Y where X: Class2<Y>> { }