2011-02-06 1 views
1

どのようなコードが正しいのですか?相続に関する質問

- (void)viewDidLoad 
{ 
    /*my code 
    */ 
    [super viewDidLoad]; 
} 

または

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    /*my code 
    */ 
} 
+1

関連:http://stackoverflow.com/questions/844195/super-viewdidload-convention –

答えて

1

それほど重要ではありません。それはあなたがそれを好む方法についての詳細です。最初にsuper、またはselfに返信しますか?それが本当にそれほど重要でないなら、好きなことをやってください。

+1

これは間違いなく重要な状況です - dealloc。 __必ず[スーパーデアロック]を最後に置いてください_。それ以外の場合はクラッシュする可能性があります。 – deanWombourne

+1

場合によっては最初にする必要があります。最後にする必要があることもあります。時にはそれは問題ではない。 *常に*必要な場合はドキュメントに要件が記載されているため、マニュアルを確認してください。この特定のケースでは、あなたはそれを呼び出すこと以上に重要ではありません。 – bbum

+0

@deanWombourne:+1:明らかに、非常に重要です – v1Axvw

0

それはあなたのサブクラスのコードは、そのメソッドのスーパークラスのコードの前または後に実行するかどうかに依存します。あなたのサブクラスコードがスーパークラスのコードに従うように、superへの呼び出しの後で独自のカスタムコードを実行する方が一般的です。繰り返しますが、それはあなたが何をしようとしているかによります。

0

私は後者を言うでしょう。スーパークラスのコードを実行してから自分のコードを実行する必要があります。

また、関数を完全に置き換えている場合は、スーパークラスの実装への呼び出しをコメントアウトするだけです。

+0

「自己構築の前、自己破壊後」は重要でない場合は書き込み回答です。実装を完全に置き換える - スーパーを呼び出すのではなく - 有効であると文書化されている場合にのみ有効です(つまり、 'drawRect:') – bbum