1

我想知道为什么在这些示例中,方法内部总是有一个 [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 回答