Swift中的嵌套泛型

Swift中的嵌套泛型,swift,nested-generics,Swift,Nested Generics,简单地说,我有一个泛型类Class1,就我所见,Swift迫使我在Class1的声明中键入硬编码Y,但我需要Y和X都是变量 长版本 我有一个泛型类DataSource类,它由非泛型实现(比如ItemsDataSource:DataSource)子类 现在我想创建一个通用控制器,它可以与我的通用数据源的子类一起工作 因此,我像这样声明控制器TableViewController,但在本例中,我无法使用 GenericItem的子类,作为它自己的参数(即,我不能声明SuperTableViewCon

简单地说,我有一个泛型类
Class1
,就我所见,Swift迫使我在
Class1
的声明中键入硬编码
Y
,但我需要
Y
X
都是变量

长版本

我有一个泛型类
DataSource
类,它由非泛型实现(比如
ItemsDataSource:DataSource
)子类

现在我想创建一个通用控制器,它可以与我的通用
数据源的子类一起工作

因此,我像这样声明控制器
TableViewController
,但在本例中,我无法使用
GenericItem
的子类,作为它自己的参数(即,我不能声明
SuperTableViewController
,因为
ItemsDataSource
具有
Item
通用参数,而不是其父
GenericItem


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

也许类似的方法会奏效:

class Class2<Y> { }

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

也许像这样的方法会奏效:

class Class2<Y> { }

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

如果我理解你的问题,你必须用泛型类型覆盖协议。你能再解释一下吗?我没有任何协议,只有一个泛型类,我需要嵌套在其他泛型中?我想问题是你说DS是泛型的,但TableViewDataSource是硬类型的。如果我理解你的问题,你必须用泛型类型覆盖协议。你能再解释一下吗?我没有任何协议,只有一个泛型类我需要嵌套在另一个泛型中?我想问题是你说DS是泛型的,但是TableViewDataSource是硬类型的。Swift错误:超类约束“GenericDataSource”不能依赖于类型参数Swift错误:超类约束“GenericDataSource”不能依赖于类型参数