loadView、viewDidLoad、viewDidUnload、dealloc的关系

一:loadView

        用于加载VC上的主View,可以将主View做成一个单View,在loadView中初始化,布局

二:viewDidLoad

        于界面上的初始化操作

三:viewDidUnload

        View的父视图消失就一起消失

        iOS设备的内存是极其有限的,如果应用程序占用的内存过多的话,系统就会对应用程序发出内存警告。UIViewController就会收到didReceiveMemoryWarning消息。                                            didReceiveMemoryWarning方法的默认实现是:如果当前UIViewController的view不在应用程序的视图层次结构(View Hierarchy)中,即view的superview为nil的时候,就会将view释放,并且调用viewDidUnload方法

四:dealloc

        也是用来释放资源的,但是只有在VC被释放的时候才会调用


技术总结点:

1.第一次访问UIViewController的view时,view为nil,然后就会调用loadView方法创建view

2.view创建完毕后会调用viewDidLoad方法进行界面元素的初始化

3.当内存警告时,系统可能会释放UIViewController的view,将view赋值为nil,并且调用viewDidUnload方法

4.当再次访问UIViewController的view时,view已经在3中被赋值为nil,所以又会调用loadView方法重新创建view

5.view被重新创建完毕后,还是会调用viewDidLoad方法进行界面元素的初始化,就是这么一个循环关系

6.dealloc只有在VC被释放的时候调用,如果VC中存在对象未被释放,将不走这个方法。

你可能感兴趣的:(loadView、viewDidLoad、viewDidUnload、dealloc的关系)