Quali sono convenienza inizializzatori?
Versione swift: 5.2
Paul Hudson @twostraws May 28th 2019
Gli inizializzatori designati sono il modo predefinito per creare nuove istanze di un tipo. Ce ne sono altri, noti come inizializzatori di convenienza, che sono lì per aiutarti a svolgere attività comuni più facilmente, ma quelli sono in aggiunta ai tuoi inizializzatori designati piuttosto che una sostituzione.
Ad esempio, potresti avere una classe Polygon
che memorizza set di punti da disegnare in seguito, come questa:
class Polygon { var points: init(points: ) { self.points = points }}
Ora, se quella fosse solo una struttura, potresti andare avanti e aggiungere altri inizializzatori. Ma poiché è una classe-in cui le regole per l’inizializzazione sono piuttosto complesse-è possibile aggiungere un inizializzatore di convenienza che imposta quadrati di una lunghezza specifica, come questo:
convenience init(squareWithLength length: CGFloat) { let points = self.init(points: points)}
Nota come l’inizializzatore di convenienza termina chiamando l’inizializzatore designato – questo è un requisito e significa che i tuoi inizializzatori di convenienza sono responsabili solo della configurazione delle parti che sono uniche per loro piuttosto che fare tutto.
SPONSORIZZATO Costruire e mantenere l’infrastruttura di abbonamento in-app è difficile. Per fortuna c’è un modo migliore. Con RevenueCat, puoi implementare le sottoscrizioni per la tua app in ore, non in mesi, in modo da poter tornare a costruire la tua app.
Provalo gratis
Sponsorizza l’hacking con Swift e raggiungi la più grande comunità Swift del mondo!
Disponibile da iOS 8.0-ulteriori informazioni nel mio libro Swift Design Patterns
Soluzioni simili solutions
- Quali sono gli inizializzatori designati?
- Fissaggio di Classe ViewController non ha gli inizializzatori”
- Come convertire un nome HTML stringa in un UIColor
- Come utilizzare il controller di visualizzazione di contenimento
- Come convertire un colore hex per un UIColor
Su Swift Knowledge Base riportato di seguito
Questo è parte della Swift Knowledge Base riportato di seguito, un libero, archivio ricercabile di soluzioni per il comune di iOS domande.