0

iOS と Cocoa Touch では、次のように super を呼び出さなくても済むように見えることがあります。

-(void) viewDidAppear:(BOOL)animated {
    // nothing weird if the following is not called:  
    //     [super viewDidAppear: animated]
    // but the docs says we should call it
}

と思いますが、が独自の描画を行っていない限り、drawRect通常はsuper同じメッセージを送信しません。superCocoa Touch と iOS では、安全のために常に同じメッセージを送信する必要があるというのは本当ですか? また、同じメッセージsuperを送信しない場合もありますか?super

4

2 に答える 2

3

一般的なルールはありません。サブクラス化しているクラスとオーバーライドしているメソッドに常に依存します。NSObject は (最新の) Objective-C のクラス階層のルートであり、明らかに、目にするメソッドや使用するメソッドのほとんどを実装していないため、常に super を呼び出すことは一般的なルールとして意味がありません。

各メソッドのドキュメントを個別に確認する必要があります。

于 2012-06-01T07:29:13.737 に答える
1

これは一概には言えません。確実なことは 1 つだけです。オーバーライドされるメソッドの機能が必要な場合は super を呼び出し、そうでない場合は呼び出さないでください。

于 2012-06-01T07:39:11.520 に答える