当前位置: 首页 > news >正文

iOS UIViewController生命周期控制

具体流程,看下图:

  

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还是继续做它该做的事情。

 

相关文章:

  • Java 异常处理的 9 个最佳实践
  • Linux运维工程师面试题第九套
  • js判断是否是用微信浏览器打开
  • 147. Insertion Sort List
  • java值类型和引用类型
  • 如何查看oracle表空间是否自动扩展
  • UBuntu14.04下安装和卸载Qt5.3.1
  • LeetCode 74 Search a 2D Matrix(搜索2D矩阵)
  • CentOS 6安装配置LDAP
  • 习题6-2 S-Trees(树)
  • centos6.x 抓取ssh登录的用户名和密码
  • Win7域用户实现User权限安装共享打印机
  • 用 gitbook 为项目写本书吧
  • WinCE6.0多国语言软键盘
  • Codeforces Round #344 (Div. 2) E. Product Sum 维护凸壳
  • 【剑指offer】让抽象问题具体化
  • AWS实战 - 利用IAM对S3做访问控制
  • egg(89)--egg之redis的发布和订阅
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • git 常用命令
  • Nodejs和JavaWeb协助开发
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • Vue2 SSR 的优化之旅
  • 彻底搞懂浏览器Event-loop
  • 翻译:Hystrix - How To Use
  • 京东美团研发面经
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 聊一聊前端的监控
  • 手写一个CommonJS打包工具(一)
  • 通信类
  • 异步
  • 2017年360最后一道编程题
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • #Linux(帮助手册)
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • $forceUpdate()函数
  • (16)Reactor的测试——响应式Spring的道法术器
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (SpringBoot)第二章:Spring创建和使用
  • (二)构建dubbo分布式平台-平台功能导图
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)php新闻发布平台 毕业设计 141646
  • (汇总)os模块以及shutil模块对文件的操作
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (译)2019年前端性能优化清单 — 下篇
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .NET Core 中的路径问题
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET 动态调用WebService + WSE + UsernameToken
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)