首页 > 代码库 > 为何需要调用“super viewDidLoad”

为何需要调用“super viewDidLoad”

一、为何需要调用“super viewDidLoad”

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

}

- (void)viewDidLoad {


    [super viewDidLoad];

}


在上面的代码中,什么需要调用父类相应的方法呢?

viewDidLoad为例,父类(super)中的viewDidLoad会帮助你做一些初始化的工作,比如A是父类,B继承ABviewDidLoad方法中创建和初始化了一些成员;C又继承B,此时,如果C在调用viewDidLoad的时候没有调用superviewDidLoad方法,那么就会有一些成员没有被初始化,可能就会产生问题。 



二、[super viewDidLoad]和[super viewDidUnload]的调用时机:

 

(1)在iPhone/iPad编程中,viewDidLoad方法用于在试图控制器中加载视图时的初始化处理

在《iPhone4与iPad开发基础教程》中出现过两种写法

  第一种写法:

  - (void)viewDidLoad {

  [super viewDidLoad];

  // 其他代码

  }

  第二种写法:

  - (void)viewDidLoad {

  // 其他代码

  [super viewDidLoad];

  }

不过,我觉得第一种写法更可取,先调用父类的加载代码,再进行自身的加载。

(2)viewDidUnload方法用于在卸载视图时的释放资源处理,比如释放输出口、释放内存等

  - (void)viewDidUnload {

  // 释放代码,比如:self.xxx = nil;

  [super viewDidUnload];

  }


为何需要调用“super viewDidLoad”