4

Objective-C では、メソッドの上部または下部でスーパー ビュー オーバーライド メソッドを呼び出す必要がありますか? 違いは何ですか?

例えば:

メソッドの上部:

 - (void)viewDidLoad {
// HERE
     [super viewDidLoad];

     //Init the table view
     UITableView *aTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 100, 400)];
     aTableView.delegate = self;
     aTableView.dataSource = self;
     aTableView.backgroundColor = [UIColor clearColor];

     self.tableView = aTableView;
     [aTableView release];
 }

または、メソッドの下部で:

- (void)viewDidLoad {

    //Init the table view
    UITableView *aTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 100, 400)];
    aTableView.delegate = self;
    aTableView.dataSource = self;
    aTableView.backgroundColor = [UIColor clearColor];

    self.tableView = aTableView;
    [aTableView release];

// HERE
    [super viewDidLoad];
}
4

3 に答える 3

5

ビューのライフサイクルの場合、必要なことを行う前にスーパークラスがセットアップを終了するようにするため、メソッドで最初に呼び出す必要があります。

ただし、dealloc の場合は、スーパー クラスがクリーンアップする前にクリーンアップする必要があるため、メソッドの最後で super を呼び出す必要があります。

于 2012-08-18T13:40:49.700 に答える
0

私が理解しているように、どこに配置するかは、メソッドで必要なことを行う前にスーパークラスメソッドで行う必要があるかどうかによって異なります。したがって、スーパーメソッドで最初に実行する必要がある作業がある場合は、スーパー呼び出しを一番上に置きます。

于 2012-08-18T13:41:44.877 に答える