1.init方法:

在init方法中实例化必要的对象(遵从LazyLoad思想)

‍init方法中初始化ViewController本身

 
2.loadView方法: 
 
当view需要被展示而它却是nil时,viewController会调用该方法。不要直接调用该方法。
如果手工维护views,必须重载重写该方法
如果使用IB维护views,必须不能重载重写该方法
loadView和IB构建view 

3.viewDidLoad方法:

重载重写该方法以进一步定制view

在iPhone OS 3.0及之后的版本中,还应该重载重写viewDidUnload来释放对view的任何索引

viewDidLoad后调用数据Model

4.viewDidUnload方法‍:

当系统内存吃紧的时候会调用该方法(注:viewController没有被dealloc)

内存吃紧时,在iPhone OS 3.0之前didReceiveMemoryWarning是释放无用内存的唯一方式,但是OS 3.0及以后viewDidUnload方法是更好的方式

在该方法中将所有IBOutlet(无论是property还是实例变量)置为nil(系统release view时已经将其release掉了)

在该方法中释放其他与view有关的对象、其他在运行时创建(但非系统必须)的对象、在viewDidLoad中被创建的对象、缓存数据等 release对象后,将对象置为nil(IBOutlet只需要将其置为nil,系统release view时已经将其release掉了)

 
一般认为viewDidUnload是viewDidLoad的镜像,因为当view被重新请求时,viewDidLoad还会重新被执行
 
viewDidUnload中被release的对象必须是很容易被重新创建的对象(比如在viewDidLoad或其他方法中创建的对象),不要release用户数据或其他很难被重新创建的对象  

viewDidLoad总是在loadView之后调用,不管你是不是通过nib文件创建的,这个方法总是会被调用的。

viewDidUnload在收到内存警告的时候调用,在我的理解,这个方法里面应该做几件事情:

1、释放掉一些比较容易创建的对象,或者是一些比较占资源的对象(图片、音频等)

2、如果界面控件自己保持了引用计数,这里也要释放掉。(比如说,这个控件被设成了属性,而且是retain的,这个retain的引用计数就必须释放掉)

3、如果跨类的参数传递机制会在viewDidUnload以后产生不正常的效果,这里也必须处理。

 
 5.dealloc方法:
 
viewDidUnload和dealloc方法没有关联,dealloc还是继续做它该做的事情

流程:

(loadView/nib文件)来加载view到内存 ——>viewDidLoad函数进一步初始化这些view ——>内存不足时,调用viewDidUnload函数释放views —->当需要使用view时有回到第一步,如此循环。
 
 
 
6.按下Home键之后(或者手机没电)不会调用viewWillDisappear和viewDidDisappear:
因为在ios4后引入了后台的概念,当按下Home键之后,程序被挂起了,但是该View依然是原来的View,并不是新的。所以只有内存不够的时候或程序被终止的时候,才会调用viewWillDisappear和viewDidDisappear。
 
 
 
 

最新文章

  1. MySQL 解压包 安装
  2. PhpExcel中文帮助手册|PhpExcel使用方法
  3. react-基础(1)
  4. 利用eclipse抽取 代码片段为方法
  5. Why The Golden Age Of Machine Learning is Just Beginning
  6. 设置pictureBox的边框颜色
  7. 手动安装UniDAC的过程
  8. JS单击隐藏界面元素
  9. UVa 10294 Arif in Dhaka (First Love Part 2)(置换)
  10. struts2.0 struts.xml配置文件详解
  11. VueJs一些资料网站链接
  12. 什么时候PHP经验MySQL存储过程
  13. Ubuntu“无法解析或打开软件包的列表或是状态文件”的解决办法。_StarSasumi_新浪博客
  14. HDU-1864-最大报销额
  15. python enumerate 枚举函数用法
  16. EJB_开发消息驱动bean
  17. Dynamics 365-部分用户访问环境缓慢
  18. Windbg程序调试系列1-Mex扩展使用总结
  19. Hadoop Streaming 使用及参数设置
  20. 学习笔记24—win10环境下python版libsvm的安装

热门文章

  1. 洛谷P3306 [SDOI2013]随机数生成器(BSGS)
  2. IT兄弟连 JavaWeb教程 JSP动作指令
  3. 第一次运行PHP项目(phpstorm+wampserver)
  4. 类的property特性
  5. PUSH 和 远程推送
  6. Mysql | 总结 | 常用的查询语句(单表查询)
  7. python操作redis之String操作
  8. 用apache commons-pool2建立thrift连接池
  9. 持续集成~Jenkins里的NuGet和MSBuild插件
  10. 左右两个Select列表框交换数据的JS