Warum können wir designierte Initialisierer in Erweiterungen nicht in swift hinzufügen?

8

Der einzige Unterschied, den ich zwischen designierten und comfortablen Initialisierern sehen kann, ist, dass ersteres notwendigerweise eine Superklasseninitialisierung aufruft (falls verfügbar).

Ich verstehe nicht, warum ich einer Klasse in einer Erweiterung keine designierte Init hinzufügen kann, während das Hinzufügen einer Bequemlichkeit in Ordnung ist.

Warum ist es so schlimm, eine Init von einer Erweiterung zu haben, um möglicherweise einen Superklasseninitialisierer aufzurufen?

    
cfischer 12.11.2014, 00:44
quelle

1 Antwort

19

Erinnern wir uns, was ein designierter Initialisierer ist.

  

Ein designierter Initialisierer initialisiert alle Eigenschaften vollständig   von dieser Klasse eingeführt und ruft eine entsprechende Oberklasse auf   Initialisierer, um den Initialisierungsprozess bis zur Oberklasse fortzusetzen   Kette.

Auszug aus: Apple Inc." Die schnelle Programmiersprache. "

%Vor%     
Yimin Lin 12.11.2014, 03:34
quelle

Tags und Links