[Swift]fonction qui retourne une classe conforme à un protocol
dream hope
Membre
Bonjour,
J'ai la fonction suivante en Objective-C :
- (UIView<MyUIViewProtocol> *) createTestView {
//selon parametre interne, return une extension MyScrollView, MyWebView, etc. qui implemente mon protcole
}
et j'aimerai trouver l'équivalent en swift, du genre :
func createTestView() ->UIView:MyUIViewProtocol {...}
Seriez-vous si c'est possible en swift ?
Merci.
D.H.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
À ma connaissance tu ne peut pas faire ce que tu veux faire. Par contre tu peux faire quelque chose du genre:
En fait en Swift les protocols sont considérés comme des types.
Là on part du principe que tu veux renvoyer un objet conforme au protocole MyUIViewProtocol sans pour autant être sur qu'il extends UIView.
Si par derrière il tu veux l'UIView tu peux faire un truc du genre :
Donc, oui, un cast.
J'ai passé quelques heure à chercher en vain ; dommage.
Merci de l'info.