具体流程,看下图:

  

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

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

viewDidLoad方法
重写该方法以进一步定制view。
viewDidLoad后调用数据Model。

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用户数据或其他很难被重新创建的对象。

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

最新文章

  1. Dockerfile初探
  2. GTD工具 Wunderlist使用心得总结
  3. 大前端学习笔记整理【六】this关键字详解
  4. 由Nullable模式想到的ToString的扩展
  5. Spring Boot 集成MyBatis
  6. HDU2824 The Euler function(欧拉函数)
  7. C# 小规模查找集合性能测试
  8. spring data redis RedisTemplate操作redis相关用法
  9. 用grunt搭建自动化的web前端开发环境-完整教程
  10. Delphi XE6调用javascript
  11. Thymeleaf模板的使用
  12. cocos2dx触屏响应(单点触摸)CCTouchBegan,CCTouchMove,CCTouchEnd
  13. HDU 4508 沼泽湿地系列故事——记住减肥I (2013腾讯编程马拉松预赛第一)
  14. nova-compute[5410]: OSError: [Errno 13] Permission denied: '图像路径'
  15. html页面显示服务器时间
  16. 视频编辑SDK---我们只提供API,任你自由设计炫酷的功能
  17. #云栖大会# 移动安全专场——APP加固新方向(演讲速记)
  18. Web服务器、应用服务器、Web容器、反向代理服务器区别与联系
  19. 解决 Can't Connect to MySQL Server on IPAddress (10061) 的问题
  20. [UE4]VR手柄按键参考

热门文章

  1. 体验 PHP under .NET Core
  2. 恢复制作了系统盘的U盘
  3. Oracle DBLINK 简单使用
  4. Django:模板template(二)
  5. OC变量限定符和属性限定符
  6. linux虚拟机设置本地yum源
  7. [development][security][modsecurity][nginx] nginx / modsecurity development things
  8. Copycat - CopycatServer
  9. html5页面自适应移动端
  10. 【python基础】os.path模块常用方法详解