Que sont les initialiseurs de commodité?

Version Swift: 5.2

Paul Hudson @twostraws 28 mai 2019

Les initialiseurs désignés sont le moyen par défaut de créer de nouvelles instances d’un type. Il y en a d’autres, connus sous le nom d’initialiseurs de commodité, qui sont là pour vous aider à accomplir plus facilement des tâches courantes, mais ceux-ci s’ajoutent à vos initialiseurs désignés plutôt qu’à un remplacement.

Par exemple, vous pouvez avoir une classe Polygon qui stocke des ensembles de points à dessiner plus tard, comme ceci:

class Polygon { var points: init(points: ) { self.points = points }}

Maintenant, si ce n’était qu’une structure, vous pouvez aller de l’avant et ajouter d’autres initialiseurs. Mais comme il s’agit d’une classe – où les règles d’initialisation sont assez complexes – vous pouvez ajouter un initialiseur pratique qui définit des carrés d’une longueur spécifique, comme ceci:

convenience init(squareWithLength length: CGFloat) { let points = self.init(points: points)}

Notez comment l’initialiseur de commodité se termine en appelant l’initialiseur désigné – c’est une exigence, et signifie que vos initialiseurs de commodité sont uniquement responsables de la configuration des pièces qui leur sont uniques plutôt que de tout faire.

Le piratage avec Swift est sponsorisé par RevenueCat

SPONSORISÉ Il est difficile de construire et de maintenir une infrastructure d’abonnement intégrée à l’application. Heureusement, il existe un meilleur moyen. Avec RevenueCat, vous pouvez implémenter des abonnements pour votre application en quelques heures, pas en mois, afin que vous puissiez revenir à la création de votre application.

Essayez-le gratuitement

Sponsorisez le piratage avec Swift et atteignez la plus grande communauté Swift au monde!

Disponible à partir d’iOS 8.0 – en savoir plus dans mon livre Swift Design Patterns

Solutions similaires

  • Quels sont les initialiseurs désignés?
  • Correction « La classe ViewController n’a pas d’initialiseurs »
  • Comment convertir une chaîne de noms HTML en UIColor
  • Comment utiliser le confinement du contrôleur de vue
  • Comment convertir une couleur hexadécimale en UIColor

À propos de la Base de connaissances Swift

Ceci fait partie de la Base de connaissances Swift, une collection gratuite et consultable de solutions pour les questions iOS courantes.



Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.