Um es einfach zu setzen, ich habe eine generische Klasse Class1<X:Class2<Y>>
, und so weit ich Swift Kräfte sehe mir Y
Art in Erklärung Class1
zu codieren, aber ich brauche Y
Variable als X
auch zu sein.Nested Generika in Swift
Lange Version
Ich habe eine generische Klasse DataSource<T:GenericItem>
-Klasse, die als durch nicht generische Implementierungen subclassed ist (wie ItemsDataSource:DataSource<Item>
).
Jetzt möchte ich einen generischen Controller erstellen, der mit Unterklassen meines generischen DataSource
arbeiten kann.
Ich erkläre So Controller wie diese TableViewController<DS:GenericDataSource<GenericItem>>
, aber in diesem Fall bin ich nicht in der Lage es mit DataSource
Parameter zu Unterklasse, die eine Unterklasse von GenericItem
als seinen eigenen Parameter (dh ich kann nicht erklären SuperTableViewController<ItemsDataSource>
, weil ItemsDataSource
ist hat Item
generischen Parameter und nicht seine Eltern GenericItem
).
Jede Idee, wie kann ich solche generischen Controller erstellen?
Wenn ich Ihre Frage zu verstehen, müssen Sie das Protokoll auch mit einem generischen Typ außer Kraft setzen. –
Können Sie das etwas mehr erklären? Ich habe keine Protokolle, nur eine generische Klasse, die ich in andere generische Klassen einbetten muss? –
Ich denke, das Problem ist, Sie sagen, DS ist generisch, aber TableViewDataSource ist hart getippt. –