大家都写程序、编程序,有没有注意过要怎样去完善程序和加载程序呢?那么如何将程序优化的更完美,更无缺,作为那那工作在iOS开发幕后的开发者,他们每天都是在做着这样的事,一天天不停的写程序,不停的完善程序。大家所学到的各种的于iOS培训方面的知识,事实大多数都来源于他们的创造!蓝鸥的任务是介绍UIViewController加载和卸载过程!

一、加载过程:

一般情况下调用init方法或者调用initWithNibName方法实例化UIViewController,无论是调用哪个方法都为调用initWithNibName,下面是实现方法:

-(id)initWithNibName:(NSString*)nibNameOrNilbundle:(NSBundle*)nibBundleOrNil

接下来就是用loadView方法来生成UIViewController.view

-(void)loadView

然后调用viewDidLoad方法

-(void)viewDidLoad

如果loadView不能生成UIViewController.view系统将会反复调用loadView及viewDidLoad方法,并且最终调用[superloadView]方法返回UIViewController.view在UINavigationController的POP操作后有时将要显示的UIViewController中的View并没有释放(也有可能释放掉),UIViewController将不会调用上面的三个方法(initWithNibName,loadView,viewDidLoad)而会调用下面这2个方法

-(void)viewWillAppear:(BOOL)animated;

-(void)viewDidAppear:(BOOL)animated;

在iOS5.0中还添加了2个函数:

-(void)viewWillLayoutSubviews;

-(void)viewDidLayoutSubviews;

下面是另外一种方法(loadView和viewDidLoad不被调用)

iOS培训篇——UIViewController加载和卸载介绍_第1张图片

二、卸载过程

iOS培训篇——UIViewController加载和卸载介绍_第2张图片

当程序收到内存不足的警告后,程序内存中的所有的UIViewController都将会收到didReceiveMemoryWarning调用消息。是为了将当前不显示的UIViewController中的view释放掉(不会调用UIViewController的dealloc方法),所以当该UIViewController再次显示的时候又要生成一次,那么这个时候,它会调用loadView->viewDidLoad->viewWillAppear等,此时也就是最容易使内存泄漏的时候了。

iOS培训篇——UIViewController加载和卸载介绍_第3张图片

关于UIViewController加载和卸载的过程就写到这,事实上趁现在有时间就和大家分享一点关于iOS开发方面的知道,希望能够帮助到有需要的人,当然是帮助到越多的人越好,也证明我没有白写。