iOS UIViewController 对内存警告的处理经验 by bishop
来源:互联网 发布:淘宝菜鸟驿站怎么加盟 编辑:程序博客网 时间:2024/06/04 18:30
自从iPhone4 支持多任务后,我们需要更加仔细处理内存不足的情形。如果用户运行我们程序的时候,后台还跑着N个软件,那前台运行的iphone 程序就很容易收到内存不足的警告。
通常情况下,iOS在内存不足时会给用户一次处理内存资源的机会。当我们的程序在第一次收到内存不足警告时,应该释放一些不用的资源,以节省部分内存。否则,当内存不足情形依然存在,iOS再次向我们程序发出内存不足的警告时,我们的程序将会被iOS kill掉。
iOS的UIViewController 类给我们提供了处理内存不足的接口。在iOS 3.0 之前,当系统的内存不足时,UIViewController的didReceiveMemoryWarining 方法会被调用,我们可以在didReceiveMemoryWarining 方法里释放掉部分暂时不用的资源。
从iOS3.0 开始,UIViewController增加了viewDidUnload方法。该方法和viewDIdLoad相配对。当系统内存不足时,首先UIViewController的didReceiveMemoryWarining 方法会被调用,而didReceiveMemoryWarining 会判断当前ViewController的view是否显示在window上,如果没有显示在window上,则didReceiveMemoryWarining 会自动将viewcontroller 的view以及其所有子view全部销毁,然后调用viewcontroller的viewdidunload方法。如果当前UIViewController的view显示在window上,则不销毁该viewcontroller的view,当然,viewDidunload也不会被调用了。
原创文章,转载请注明: 转载自DEVDIV博客
本文链接地址: iOS UIViewController 对内存警告的处理经验
- iOS UIViewController 对内存警告的处理经验 by bishop
- iOS UIViewController 对内存警告的处理经验
- iOS UIViewController 对内存警告的处理经验
- iOS6.0以后App对内存警告的处理
- IOS6.0以后APP对内存警告的处理
- IOS6.0以后APP对内存警告的处理
- IOS6.0以后APP对内存警告的处理
- ios6以上系统对内存警告的处理
- IOS6.0以后APP对内存警告的处理
- IOS6.0以后APP对内存警告的处理
- 对内存的认识
- 对内存的理解
- 对内存的思考
- 对内存的优化
- vector::clear()和vecotr::pop_back()对内存处理的不同
- vector::clear()和vecotr::pop_back()对内存处理的不同
- 记录对内存泄露(OOM)的处理
- iOS: LLDB对内存的读取和修改
- mysql一些常用命令
- 纯C日志函数库--zlog上手指南
- 编译DLL时为啥没有生成lib文件
- Http1.0和Http1.1的区别和部分状态码
- JasperReport打印时报错:java.security.AccessControlException: access denied
- iOS UIViewController 对内存警告的处理经验 by bishop
- Android app“版本更新”功能的前后端实现
- 压力测试案例
- Collection接口和Map接口的主要实现类
- Android 方向传感器与磁力计和加速度传感器之间的关系
- 较难的动态规划问题——付款问题,面值任意,可找零
- Service 中启动 Activity
- 对于TabHost中setContent()使用Intent的一点总结
- 2012.4.12(周四)实验课要求