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相同的消息,除非它super正在自己做一些绘图。为了在 Cocoa Touch 和 iOS 中安全起见,我们是否应该始终发送super相同的消息,那么是否存在不发送super相同消息的情况?

4

2 回答 2

3

没有一般规则,它始终取决于您要继承的类和要覆盖的方法。NSObject 是(现代)Objective-C 中类层次结构的根,显然它没有实现您看到和使用的大多数方法,因此作为一般规则始终调用 super 是没有意义的。

您只需分别检查每种方法的文档。

于 2012-06-01T07:29:13.737 回答
1

一般不能这么说。只有一件事是确定的:如果你想要被覆盖的方法所具有的功能,就调用 super,如果你不想要就不要调用它。

于 2012-06-01T07:39:11.520 回答