In Objective-C, è possibile scrivere qualcosa di simile:Swift: proprietà conforme a una classe specifica e nello stesso tempo per più protocolli
@property(retain) UIView<Protocol1, Protocol2, ...> *myView;
Ma come posso scrivere questo codice in rapida?
so già come fare un alloggio è conforme alla molti protocolli, ma non funziona utilizzando l'eredità:
var myView: ??? protocol<Protocol1, Protocol2, ...>
Edit:
Io uso molti UIView
sottotipi come UIImageView
, UILabel
o altri, e ho bisogno di utilizzare alcune delle proprietà UIView
oltre ad alcuni metodi definiti nei protocolli. Nel peggiore dei casi potrei creare un UIViewProtocol
con le proprietà necessarie, ma vorrei sapere se è possibile in Swift dichiarare una proprietà/variabile con un tipo e un protocollo con cui conformarsi.
Non credo sia possibile come si potrebbe in Objective-C. Potresti dirci qualcosa in più sui protocolli? Pensa che potrebbe esserci un approccio diverso che sarà più adatto a Swift. –
Non capisco perché dovresti provare a forzare una classe come UIView o UILabel per conformarsi ad un protocollo a cui non è già conforme, nel qual caso non è necessario specificarlo. Stai estendendo queste classi per conformarti ai nuovi protocolli? –
@ TomErikStøwer Penso che questa sia la soluzione migliore. Sto ancora imparando Swift e vorrei sapere se era possibile come in Objective-C. Sì, li estendo per conformarmi ai nuovi protocolli, quindi non ci sono problemi. –