在编写iOS ViewControllers时,您应该在自己的代码之前或之后调用父类方法吗?

时间:2010-09-26 11:23:06

标签: iphone oop uiviewcontroller parent-child

从模板创建的新iOS ViewControllers包含几个调用其父类方法的“样板”方法。

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

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

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

修改这些类时,我应该在父类调用之前或之后放置自己的代码吗?

- (void) viewDidLoad {
        // Should I put my code here?
        [super viewDidLoad];
        // Or here?
}

2 个答案:

答案 0 :(得分:3)

在viewDidLoad(通常)中你应该继续,因为它调用父类的load方法

在dealloc中你会去

答案 1 :(得分:3)

这适用于所有OOP。在构造函数(以及其他方法)中,您应该在代码之前调用父代的构造函数。原因是您的代码可能需要一些在父级中处理的初始化,即base的初始化应该在派生类的初始化之前进行。在析构函数中你应该做相反的事情,即释放派生类的资源应该在释放base的资源之前。原因很简单。派生类的资源可能取决于基础资源。如果在此之前释放基础资源可能会有麻烦。

这是理想的情况。在许多情况下,您可能看到没有区别,但如果存在如上所述的依赖性,那么您将遇到麻烦。因此,您应该遵循标准,在代码之前调用基类的方法,并且在dealloc中执行相反的操作。