Pour faire simple, j'ai une classe générique Class1<X:Class2<Y>>
, et aussi loin que je vois les forces Swift me hardcode le type Y
dans la déclaration de Class1
, mais je dois Y
être variable ainsi que X
.Nested générique dans Swift
Version longue
J'ai une classe classe DataSource<T:GenericItem>
générique, qui est que les implémentations non par sous-classé génériques (comme ItemsDataSource:DataSource<Item>
).
Maintenant, je veux créer un contrôleur générique qui peut fonctionner avec les sous-classes de mon générique DataSource
.
Je suis déclarant contrôleur comme ça TableViewController<DS:GenericDataSource<GenericItem>>
, mais dans ce cas, je ne suis pas en mesure de sous-classe avec paramètre DataSource
qui est une sous-classe de GenericItem
comme son propre paramètre (ie je ne peux pas déclarer SuperTableViewController<ItemsDataSource>
, parce que ItemsDataSource
a Item
paramètre générique et pas son parent GenericItem
).
Une idée comment puis-je créer un tel contrôleur générique?
Si je comprends bien votre question, vous devez remplacer le protocole aussi avec un type générique. –
Pouvez-vous expliquer un peu plus? Je n'ai aucun protocole, juste une classe générique que j'ai besoin d'imbriquer dans d'autres génériques? –
Je pense que le problème est que vous dites que DS est générique mais TableViewDataSource est tapé en dur. –