Hvad er bekvemmelighed initialisatorer?

hurtig version: 5.2

Paul Hudson @totegn 28.maj 2019

udpegede initialisatorer er standardmåden til at oprette nye forekomster af en type. Der er andre, kendt som bekvemmelighedsinitialisatorer, der er der for at hjælpe dig med at udføre almindelige opgaver lettere, men de er i tillæg til dine udpegede initialisatorer snarere end en erstatning.

for eksempel kan du have enPolygon klasse, der gemmer sæt punkter, der skal tegnes senere, sådan:

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

nu, hvis det bare var en struktur, kunne du gå videre og tilføje andre initialisatorer. Men da det er en klasse-hvor reglerne for initialisering er ret komplekse – kan du tilføje en bekvemmelighedsinitialisator, der opretter firkanter af en bestemt længde, som denne:

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

bemærk, hvordan bekvemmelighedsinitialisatoren slutter ved at kalde den udpegede initialisator – dette er et krav og betyder, at dine bekvemmelighedsinitialisatorer kun er ansvarlige for at oprette de dele, der er unikke for dem i stedet for at gøre alt.

Hacking med hurtig er sponsoreret af RevenueCat

sponsoreret opbygning og vedligeholdelse af abonnementsinfrastruktur i appen er svært. Heldigvis er der en bedre måde. Med RevenueCat kan du implementere abonnementer til din app på timer, ikke måneder, så du kan komme tilbage til at opbygge din app.

prøv det gratis

Sponsor Hacking med hurtig og nå verdens største hurtige samfund!

fås fra iOS 8.0-Lær mere i min bog hurtige designmønstre

lignende løsninger …

  • hvad er udpegede initialisatorer?
  • fastsættelse af “Klassevisningskontroller har ingen initialisatorer”
  • Sådan konverteres en HTML-navnestreng til en UIColor
  • Sådan bruges Vis controller indeslutning
  • Sådan konverteres en sekskantet farve til en UIColor

om den hurtige vidensbase

Dette er en del af den hurtige vidensbase, en gratis, søgbar samling af løsninger til almindelige iOS-spørgsmål.



Skriv et svar

Din e-mailadresse vil ikke blive publiceret.