你們都寫程序、編程序,有沒有注意過要怎樣去完善程序和加載程序呢?那麼如何將程序優化的更完美,更完好,做爲那那工做在iOS開發幕後的開發者,他們天天都是在作着這樣的事,一每天不停的寫程序,不停的完善程序。你們所學到的各類的於iOS培訓方面的知識,事實大多數都來源於他們的創造!藍鷗的任務是介紹UIViewController加載和卸載過程!編程
1、加載過程:ide
通常狀況下調用init方法或者調用initWithNibName方法實例化UIViewController,不管是調用哪一個方法都爲調用initWithNibName,下面是實現方法:函數
-(id)initWithNibName:(NSString*)nibNameOrNilbundle:(NSBundle*)nibBundleOrNil優化
接下來就是用loadView方法來生成UIViewController.viewspa
-(void)loadViewblog
而後調用viewDidLoad方法內存
-(void)viewDidLoad開發
若是loadView不能生成UIViewController.view系統將會反覆調用loadView及viewDidLoad方法,而且最終調用[superloadView]方法返回UIViewController.view在UINavigationController的POP操做後有時將要顯示的UIViewController中的View並無釋放(也有可能釋放掉),UIViewController將不會調用上面的三個方法(initWithNibName,loadView,viewDidLoad)而會調用下面這2個方法get
-(void)viewWillAppear:(BOOL)animated;it
-(void)viewDidAppear:(BOOL)animated;
在iOS5.0中還添加了2個函數:
-(void)viewWillLayoutSubviews;
-(void)viewDidLayoutSubviews;
下面是另一種方法(loadView和viewDidLoad不被調用)
2、卸載過程
當程序收到內存不足的警告後,程序內存中的全部的UIViewController都將會收到didReceiveMemoryWarning調用消息。是爲了將當前不顯示的UIViewController中的view釋放掉(不會調用UIViewController的dealloc方法),因此當該UIViewController再次顯示的時候又要生成一次,那麼這個時候,它會調用loadView->viewDidLoad->viewWillAppear等,此時也就是最容易使內存泄漏的時候了。
關於UIViewController加載和卸載的過程就寫到這,事實上趁如今有時間就和你們分享一點關於iOS開發方面的知道,但願可以幫助到有須要的人,固然是幫助到越多的人越好,也證實我沒有白寫。