[IOS] viewDidLoad

来源:互联网 发布:切糕淘宝湖南 编辑:程序博客网 时间:2024/05/06 21:45

view有两个重要circle

一: 加载

1.loadView 只有在你在代码中创建实现你的view时需要在对应UIViewController里重写该方法。

注意:不要super loadView以减少资源消耗.

2.viewDidLoad 无论你是否用Interface Builder创建nib文件创建UIViewController ,这个方法都会被调用的。它是用来做一些额外在你架子啊你的view时需要做的任务。

3.如果在UIViewController里存储了IBOutlet,和UIView或者其子类,在viewDidUnload里都要赋值它们为nil,用self.xxx方式,因为这同时会出发setter里的release方法。否则会有leak。

4.每一个UIViewController都会有一个view property,这是default的,在UIViewController初始化后,当程序某部分访问view时,这时如果view是没有在内存中存在,view controller会调用loadView方法。

如果你重写了loadView,你需要创建所有相关的views,并且赋值view一个非nil值。

如果你没有重写这个方法,默认初始化方式使用view controller的nibName和nibBundle属性来试图从一个专有的nib文件加载。如果没有找到那个专有的那个nib文件,默认会去找一个名字与view controller相匹配的nib文件去加载。

如果没有有效的nib文件,默认实现最后会返回一个空view,并且赋值给view这个property。




二:卸载

view被卸载发生在程序收到系统的low memory warning。

每一个view controller都会调用自己的didReceiveMemoryWarning方法。

如果你重写了这个方法,你需要release掉所有你的view controller不在使用的自定义数据。一定不要在这个方法里release你view controller的view property。你必须要使用super方法来执行一些默认操作。

默认实现是只release那些执行release操作安全的view。

如果view controller release它的view,它会调用viewDidUnload方法,你可以重写这个方法来实现一些额外的清除你的views工作。

原创粉丝点击