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%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?