4

のドキュメントでloadView、Apple は次のように述べています。

このメソッドのカスタム実装では、super を呼び出さないでください。

[super loadView]そこで、loadViewメソッドを呼び出してみました。悪いことは何も起こらなかったようで、警告もありませんでした。loadViewNIB からではなく、プログラムで作成されたビューを使用しています。

を呼び出したときに実際に起こる悪いこと (あるとすれば) は[super loadView]?

4

2 に答える 2

5

を呼び出す[super loadView]と、 のUIViewController実装がloadView実行されます。特に、これは、NIB が提供されている場合に、NIB からビューをロードするメソッドですnibName。したがって、スーパーを最後に呼び出すと、独自のサブクラスで行ったすべてのビュー設定が上書きされる可能性があります。最初に super を呼び出すと、これは問題になりません...コードが含まれていない限り-awakeFromNib

super基本的に、ビューをプログラムでロードしている場合、スーパークラスで行われた作業はどれも保持したい作業ではないため、呼び出すべきではありません。せいぜい、あなたはたくさんの仕事を捨てています。最悪のUIViewController場合、ビューの起源に関する仮定を行う何らかの状態をそこに設定する可能性があります。

必要ないのでやらないでください。

于 2013-02-28T22:14:01.823 に答える
1

この比較を許せば、「赤で通りを渡らないで」のようなものです。

理由は何であれ危険かもしれないので、通りを渡らないというルールを定めた信号機があります。あなたが赤で通りを渡っても何も起こらないことは完全にもっともらしいです。

APIは、 superを呼び出さないように指定することでisルールを設定します。上記の例のように、結果は未定であり、他のものに依存します。何も起こらないことは完全にもっともらしいです。

于 2013-02-28T21:54:31.383 に答える