iOS UIViewController 对内存警告的处理经验
2012-03-06 09:17
405 查看
原文链接:http://www.devdiv.com/iOS_iPhone-iOS_UIViewController_%E5%AF%B9%E5%86%85%E5%AD%98%E8%AD%A6%E5%91%8A%E7%9A%84%E5%A4%84%E7%90%86%E7%BB%8F%E9%AA%8C-thread-59956-1-1.html
自从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也不会被调用了。
自从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也不会被调用了。
相关文章推荐
- iOS UIViewController 对内存警告的处理经验 by bishop
- iOS UIViewController 对内存警告的处理经验
- iOS6.0以后App对内存警告的处理
- ios系统内存警告的处理过程
- ios 处理内存警告
- IOS内存警告处理
- iOS——UINavigationController简单实用以及内存警告处理过程
- didReceiveMemoryWarning-内存警告处理方法-iOS
- iOS6.0以后App对内存警告的处理
- iOS开发内存警告Memory Warning和ViewController的生命周期的问题
- iOS内存警告处理
- iOS开发内存警告Memory Warning和ViewController的生命周期的问题
- iOS开发内存警告Memory Warning和ViewController的生命周期的问题
- UIViewController的生命周期及iOS程序执行顺序 和ios6 处理内存警告
- iOS 多线程编程<十四、SDWebImage图片下载,内存警告处理>
- IOS6.0以后APP对内存警告的处理
- IOS6.0以后APP对内存警告的处理
- IOS6.0以后APP对内存警告的处理
- 27.iOS内存警告处理(didReceiveMemoryWarning)
- iOS开发内存警告Memory Warning和ViewController的生命周期的问题