wat zijn gemak initializers?
Swift version: 5.2
Paul Hudson @twostraws 28 Mei 2019
aangewezen initializers zijn de standaard manier om nieuwe exemplaren van een type aan te maken. Er zijn anderen, bekend als gemak initializers, die er zijn om u te helpen gemeenschappelijke taken gemakkelijker uit te voeren, maar die zijn in aanvulling op uw aangewezen initializers in plaats van een vervanging.
bijvoorbeeld, je zou eenPolygon
klasse kunnen hebben die sets van punten opslaat die later getekend moeten worden, zoals dit:
class Polygon { var points: init(points: ) { self.points = points }}
nu, als dat gewoon een struct zou zijn zou je andere initializers kunnen toevoegen. Maar omdat het een klasse is-waar de regels voor initialisatie vrij complex zijn – zou je een gemak initializer kunnen toevoegen die vierkanten van een specifieke lengte instelt, zoals dit:
convenience init(squareWithLength length: CGFloat) { let points = self.init(points: points)}
merk op hoe de convenience initializer eindigt door de aangewezen initializer aan te roepen – dit is een vereiste, en betekent dat uw convenience initializers alleen verantwoordelijk zijn voor het opzetten van de onderdelen die uniek zijn voor hen in plaats van alles te doen.
gesponsord bouwen en onderhouden van in-app-abonnementsinfrastructuur is moeilijk. Gelukkig is er een betere manier. Met RevenueCat kunt u abonnementen voor uw app implementeren in uren, niet in maanden, zodat u weer kunt beginnen met het bouwen van uw app.
probeer het gratis
Sponsor hacken met Swift en bereik de grootste Swift-Gemeenschap ter wereld!
beschikbaar vanaf iOS 8.0-meer informatie in mijn boek Swift Design Patterns
soortgelijke oplossingen …
- Wat zijn initializers?
- Fixing “Class ViewController has no initializers”
- hoe converteer je een HTML-naamstring naar een UIColor
- Hoe gebruik je view controller containment
- hoe converteer je een hex-kleur naar een UIColor
over de Swift Knowledge Base
Dit maakt deel uit van de Swift Knowledge Base, een gratis, doorzoekbare verzameling oplossingen voor veelvoorkomende iOS-vragen.