1

これらの例では、まったく同じ名前の Method 内に [super someMethod] が常に存在するのはなぜだろうか。

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


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning]; 
}

- (void)viewDidUnload {
    [super viewDidUnload];
}

これらのメッセージがスーパークラスに送信されることは知っていますが、これについてはどうすればよいでしょうか?

4

2 に答える 2

2

これは単に、スーパークラスが常に行うことを実行できるようにするためです。これは、クラスとスーパークラスの両方が同じメッセージを受け取る方法です。場合によっては、独自の動作を実装し、スーパークラスの動作呼び出す必要があります。

たとえば、スーパークラスには独自のメモリ クリーンアップ ルーチンがあり、呼び出さなければ無視されます[super didReceiveMemoryWarning]

于 2010-10-17T21:17:50.707 に答える
1

これは、すべてのスーパークラス コード (機能と副作用) が、派生クラス関数にあるものと同様に実行されるようにするために行われます。実際には、これを行うことで、基本クラスの機能の上に重ねることができます。

于 2010-10-17T21:15:13.500 に答える