Convenience-Initialisierung in Swift

 Khuong Pham
Khuong Pham

Folgen

Mai 23, 2017 · 2 min lesen

Klassen, Strukturen und Aufzählungen benötigen mindestens eine leere init-Methode zum Initialisieren, um ihre Instanzen vorzubereiten.

Für Strukturen und Aufzählungen haben ihre Konstruktoren bereits implizit deklariert.

Über die Klassen, wenn wir eine Klasse schreiben, wir sollten es explizit deklarieren.

OK, es ist gut, oder?

Aber eine Klasse hat Vererbung, das heißt, sie kann ihre Superklassenmethoden, Eigenschaften und andere Eigenschaften erben. Gehen wir zum nächsten Code weiter unten

Wir haben eine Klasse B – eine Unterklasse der Klasse A. Wir haben eine Variable hinzugefügt und einen Initialisierer hinzugefügt, um einen Wert auf b zu setzen, damit er kompiliert wird. Sie können erwarten, dass B den Initialisierer A init(a: Int) geerbt hat. Aber das tut es nicht. Wie weiß A ’s init(a: Int) , wie man der b Variablen, die B hinzugefügt hat, einen Wert zuweist? Also können wir eine B -Instanz nicht mit einem Initialisierer initialisieren, der nicht alle unsere Werte initialisieren kann, wie folgt:

Wenn ich also nur einen oder b Wert initialisieren möchte, mit einem Standardwert des Restes. Wie konnte es?

Convenience ines wird uns helfen, fügen Sie diesen Code hinzu

Wir haben also eine sehr bequeme Möglichkeit, eine B Instanz zu initialisieren.

Das war’s! Ich hoffe, Ihnen gefällt dieser Artikel, danke fürs Lesen und wir sehen uns das nächste Mal.