O que são inicializadores de conveniência?

Swift versão: 5.2

Paul Hudson @twostraws 28 de Maio de 2019

Designada inicializadores são o padrão de criação de novas instâncias de um tipo. Existem outros, conhecidos como inicializadores de conveniência, que estão lá para ajudá-lo a realizar tarefas comuns mais facilmente, mas esses são, além de seus inicializadores designados, em vez de um substituto.

Por exemplo, você pode ter uma Polygon classe que armazena conjuntos de pontos a serem sorteados, mais tarde, como este:

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

Agora, se isso fosse apenas uma estrutura que você pode ir em frente e adicionar outros inicializadores. Mas como é uma classe-onde as regras para a inicialização são bastante complexas-você poderia adicionar um inicializador de conveniência que configura quadrados de um comprimento específico, como este:

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

Note como o inicializador de conveniência termina chamando o inicializador designado – este é um requisito, e significa que os seus inicializadores de conveniência só são responsáveis pela configuração das partes que são únicas para eles, em vez de fazer tudo.

Hacking with Swift is sponsored by RevenueCat

SPONSORED Building and maintaining in-app subscription infrastructure is hard. Felizmente, há uma maneira melhor. Com a RevenueCat, você pode implementar assinaturas para o seu aplicativo em horas, não meses, para que você possa voltar a construir o seu aplicativo.

tente de graça

patrocina Hacking com Swift e alcançar a maior comunidade Swift do mundo!

disponível no iOS 8.0-learn more in my book Swift Design Patterns

Similar solutions …

  • Quais são os inicializadores designados?
  • Fixing “Class ViewController has no initializers”
  • How to convert a HTML name string into a UIColor
  • How to use view controller containment
  • How to convert a hex color to a UIColor

About the Swift Knowledge Base

This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.



Deixe uma resposta

O seu endereço de email não será publicado.