どのようなコードが正しいのですか?相続に関する質問
- (void)viewDidLoad
{
/*my code
*/
[super viewDidLoad];
}
または
- (void)viewDidLoad
{
[super viewDidLoad];
/*my code
*/
}
どのようなコードが正しいのですか?相続に関する質問
- (void)viewDidLoad
{
/*my code
*/
[super viewDidLoad];
}
または
- (void)viewDidLoad
{
[super viewDidLoad];
/*my code
*/
}
それほど重要ではありません。それはあなたがそれを好む方法についての詳細です。最初にsuper
、またはself
に返信しますか?それが本当にそれほど重要でないなら、好きなことをやってください。
これは間違いなく重要な状況です - dealloc。 __必ず[スーパーデアロック]を最後に置いてください_。それ以外の場合はクラッシュする可能性があります。 – deanWombourne
場合によっては最初にする必要があります。最後にする必要があることもあります。時にはそれは問題ではない。 *常に*必要な場合はドキュメントに要件が記載されているため、マニュアルを確認してください。この特定のケースでは、あなたはそれを呼び出すこと以上に重要ではありません。 – bbum
@deanWombourne:+1:明らかに、非常に重要です – v1Axvw
それはあなたのサブクラスのコードは、そのメソッドのスーパークラスのコードの前または後に実行するかどうかに依存します。あなたのサブクラスコードがスーパークラスのコードに従うように、superへの呼び出しの後で独自のカスタムコードを実行する方が一般的です。繰り返しますが、それはあなたが何をしようとしているかによります。
私は後者を言うでしょう。スーパークラスのコードを実行してから自分のコードを実行する必要があります。
また、関数を完全に置き換えている場合は、スーパークラスの実装への呼び出しをコメントアウトするだけです。
「自己構築の前、自己破壊後」は重要でない場合は書き込み回答です。実装を完全に置き換える - スーパーを呼び出すのではなく - 有効であると文書化されている場合にのみ有効です(つまり、 'drawRect:') – bbum
関連:http://stackoverflow.com/questions/844195/super-viewdidload-convention –