のドキュメントでloadView
、Apple は次のように述べています。
このメソッドのカスタム実装では、super を呼び出さないでください。
[super loadView]
そこで、loadView
メソッドを呼び出してみました。悪いことは何も起こらなかったようで、警告もありませんでした。loadView
NIB からではなく、プログラムで作成されたビューを使用しています。
を呼び出したときに実際に起こる悪いこと (あるとすれば) は[super loadView]
?
のドキュメントでloadView
、Apple は次のように述べています。
このメソッドのカスタム実装では、super を呼び出さないでください。
[super loadView]
そこで、loadView
メソッドを呼び出してみました。悪いことは何も起こらなかったようで、警告もありませんでした。loadView
NIB からではなく、プログラムで作成されたビューを使用しています。
を呼び出したときに実際に起こる悪いこと (あるとすれば) は[super loadView]
?
を呼び出す[super loadView]
と、 のUIViewController
実装がloadView
実行されます。特に、これは、NIB が提供されている場合に、NIB からビューをロードするメソッドですnibName
。したがって、スーパーを最後に呼び出すと、独自のサブクラスで行ったすべてのビュー設定が上書きされる可能性があります。最初に super を呼び出すと、これは問題になりません...コードが含まれていない限り-awakeFromNib
。
super
基本的に、ビューをプログラムでロードしている場合、スーパークラスで行われた作業はどれも保持したい作業ではないため、呼び出すべきではありません。せいぜい、あなたはたくさんの仕事を捨てています。最悪のUIViewController
場合、ビューの起源に関する仮定を行う何らかの状態をそこに設定する可能性があります。
必要ないのでやらないでください。
この比較を許せば、「赤で通りを渡らないで」のようなものです。
理由は何であれ危険かもしれないので、通りを渡らないというルールを定めた信号機があります。あなたが赤で通りを渡っても何も起こらないことは完全にもっともらしいです。
APIは、 superを呼び出さないように指定することでisルールを設定します。上記の例のように、結果は未定であり、他のものに依存します。何も起こらないことは完全にもっともらしいです。