2017-10-05 4 views
1

Wenn ich die UIViewController 's Func viewSafeAreaInsetsDidChange überschreiben muss ich super anrufen?überschreiben viewSafeAreaInsetsDidChange muss super aufgerufen werden?

override func viewSafeAreaInsetsDidChange() { 
    super.viewSafeAreaInsetsDidChange() 
    // do my stuff 
} 

Ich weiß, dass, wenn Sie func viewWillAppear(_ animated: Bool) außer Kraft setzen und Sie rufen nicht die super innen, Ihre Anwendung auffällig verhalten könnten. Apple sagt tatsächlich, dass Sie irgendwann super anrufen müssen. Ich denke, das ist hier nicht der Fall, und das wollte ich bestätigen!

Antwort

3

Es ist nicht erforderlich, wird jedoch allgemein als bewährte Methode zum Aufrufen von super auf überschriebene Methoden betrachtet, es sei denn, es gibt einen expliziten Grund, dies nicht zu tun.

Wenn Sie sich entscheiden, dass Ihr View Controller in Zukunft von einer benutzerdefinierten UIViewController Unterklasse erben soll, müssen Sie keine Codeänderungen vornehmen, um die Implementierung der Superklasse in jeder Unterklasse auszuführen.

+1

Ich weiß, dass dies die beste Vorgehensweise ist, aber wenn Sie 'func viewWillAppear (_ animated: Bool)' überschreiben und Sie nicht das 'super' aufrufen, verhält sich Ihre App möglicherweise fehlerhaft. Apple sagt tatsächlich, dass du irgendwann 'super' nennen musst. ** Ich denke, das ist hier nicht der Fall, und das wollte ich bestätigen! ** :) – jdev

Verwandte Themen