2017-10-05 92 views
1

如果我覆蓋UIViewController的func viewSafeAreaInsetsDidChange是否需要調用super?覆蓋viewSafeAreaInsetsDidChange需要超級被調用?

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

我知道,如果重寫func viewWillAppear(_ animated: Bool),你是不是調用super內,您的應用程序可能運行不穩定。事實上,蘋果說你必須在某個時候撥打super。我想這不是這種情況,這就是我想要確認的!

回答

3

這不是必需的,但通常認爲最好的做法是對重寫的方法調用super,除非有明確的理由不這樣做。

如果您決定您的視圖控制器將來會繼承自定義的UIViewController子類,則不必進行任何代碼更改即可在每個子類中運行超類的實現。

+1

我知道這是最好的做法,但是如果你重寫'func viewWillAppear(_ animated:Bool)'而你沒有在內部調用'super',你的應用可能會表現不正常。事實上,蘋果公司表示,你必須在某個時候稱「超級」。 **我想這不是這種情況,這就是我想確認的!** :) – jdev