我在其中一个Apple样本中看到了这段代码:
- (void)viewDidLoad {
[super viewDidLoad];
// Set the content size for the popover: there are just two rows in the table view, so set to rowHeight*2.
self.contentSizeForViewInPopover = CGSizeMake(310.0, self.tableView.rowHeight*2.0);
}
-(void) viewDidUnload {
[super viewDidUnload];
self.splitViewController = nil;
self.rootPopoverButtonItem = nil;
}
我来自C ++背景,所以(我认为),我习惯于在调用基类的卸载方法之前看到派生类的成员被处理。在这种情况下,事先调用super viewDidUnload的原因是什么,还是只是随意的?
答案 0 :(得分:3)
在这种情况下,我认为这不重要。您只减少引用计数以释放您在viewDidLoad中创建的ibout或其他内容。基本上这只是baseclass中viewDidUnload代码的扩展,而不是覆盖或析构函数调用。
通常当您希望在执行子类中的方法时也执行基类代码时,除非有充分的理由不这样做,否则首先调用super方法。