Was sind Convenience Initializer?

Swift version: 5.2

Paul Hudson @twostraws 28. Mai 2019

Designierte Initialisierer sind die Standardmethode zum Erstellen neuer Instanzen eines Typs. Es gibt andere, sogenannte Convenience-Initialisierer, die Ihnen helfen sollen, allgemeine Aufgaben einfacher zu erledigen, aber diese sind zusätzlich zu Ihren angegebenen Initialisierern und kein Ersatz.

Zum Beispiel könnten Sie eine Polygon Klasse haben, die Sätze von Punkten speichert, die später gezeichnet werden sollen, wie folgt:

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

Wenn das nur eine Struktur wäre, könnten Sie weitere Initialisierer hinzufügen. Da es sich jedoch um eine Klasse handelt, in der die Regeln für die Initialisierung recht komplex sind– können Sie einen praktischen Initialisierer hinzufügen, der Quadrate einer bestimmten Länge wie folgt einrichtet:

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

Beachten Sie, wie der Komfortinitialisierer mit dem Aufruf des angegebenen Initialisierers endet – dies ist eine Anforderung und bedeutet, dass Ihre Komfortinitialisierer nur für die Einrichtung der Teile verantwortlich sind, die für sie eindeutig sind, anstatt alles zu tun.

Das Hacken mit Swift wird von RevenueCat gesponsert

GESPONSERT Der Aufbau und die Wartung der In-App-Abonnementinfrastruktur ist schwierig. Zum Glück gibt es einen besseren Weg. Mit RevenueCat können Sie Abonnements für Ihre App in Stunden und nicht in Monaten implementieren, sodass Sie Ihre App wieder erstellen können.

Probieren Sie es kostenlos aus

Sponsern Sie Hacking mit Swift und erreichen Sie die weltweit größte Swift-Community!

Verfügbar ab iOS 8.0 – erfahren Sie mehr in meinem Buch Swift Design Patterns

Ähnliche Lösungen…

  • Was sind designierte Initialisierer?
  • 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

Über die Swift Knowledge Base

Dies ist Teil der Swift Knowledge Base, einer kostenlosen, durchsuchbaren Sammlung von Lösungen für häufige iOS-Fragen.



Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.