Es gibt keine Faustregel, ob Sie die Superimplementierung einer bestimmten Methode aufrufen sollen oder nicht. Dies sollte von Fall zu Fall entschieden werden, abhängig von den Empfehlungen aus der Dokumentation für die Umsetzung der Methode der Superklasse und Ihren Anforderungen.
Nur um zu erklären, warum die beiden Beispiele, die Sie enthalten könnten, wie sie sind, werden wir in der Dokumentation zu -[UIView drawRect:] aussehen kann, in dem es heißt:
Wenn Sie UIView Unterklasse der Implementierung dieser Methode direkt, muss nicht super anrufen. Wenn Sie jedoch eine andere Sichtklasse unterklassifizieren, sollten Sie Super an einem bestimmten Punkt in Ihrer Implementierung aufrufen.
und die Dokumentation für -[NSObject awakeFromNib], in dem es heißt:
Sie müssen die Super Implementierung von awakeFromNib rufen Sie die Möglichkeit zu geben, Eltern Klassen zusätzliche Initialisierung durchzuführen sie benötigen . Obwohl die Standardimplementierung dieser Methode nichts ist, bieten viele UIKit-Klassen nicht leere Implementierungen.
Die meiste Zeit ist es wahrscheinlich eine sichere Wette, dass Sie die Super-Implementierung einer Methode nennen sollten (siehe Kommentare unten). Beachten Sie jedoch, dass einige Methoden erfordern, dass Sie ihre Superimplementierung aufrufen, andere nicht, und einige erfordern sogar, dass Sie die Superimplementierung an einem bestimmten Punkt in der Überschreibung aufrufen. Bedenken Sie daher im Zweifelsfall immer die Dokumentation.
Die Faustregel lautet "lese die Dokumente". – matt
@matt Ihr Kommentar hilft niemand, bitte geben Sie einen Verweis auf die Dokumente oder einen anderen SO-Post. https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Inheritance.html#//apple_ref/doc/uid/TP40014097-CH17-ID196 – alexisSchreier
@alexisSchreier Ich stimme nicht zu. Ich habe die Frage sehr direkt, prägnant und korrekt beantwortet. Um zu wissen, ob Super bei der Implementierung von 'watchFromNib' aufgerufen werden soll, müssen Sie die Dokumentation zu' watchFromNib' lesen. Und so weiter. Es gibt keinen kürzeren Weg. Mein Kommentar hilft _jeverybody_. – matt