博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS6取消viewDidUnload的原因和解决方案
阅读量:6931 次
发布时间:2019-06-27

本文共 892 字,大约阅读时间需要 2 分钟。

一直以来我们会在viewDidUnload方法中做一些清空outlet或者移除observer的事情。在viewDidUnload中清理observer其实并不是很安全,因此在iOS5中Apple引入了viewWillUnload,建议开发者们在viewWillUnload的时候就移除observer。而对于出现内存警告时,某些不用的view将被清理,这时候将自动意外执行viewWillUnload和viewDidUnload,很可能造成莫名其妙的crash,而这种内存警告造成的问题又因为其随机性难以debug。

于是Apple这次做了一个惊人的决定,直接在iOS6里把viewWillUnload和viewDidUnload标注为了Deprecated,并且不再会调用他们。绝大部分开发者其实是对iOS3.0以来就伴随我们的viewDidUnload是有深深的感情的,但是现在需要和这个方法说再见了。

官方ViewController programming guide 上说,在iOS6以后要这样干:

- (void)didReceiveMemoryWarning

{
    [super didReceiveMemoryWarning];
    // Add code to clean up any of your own resources that are no longer necessary.
    if ([self.view window] == nil)
    {
        // Add code to preserve data stored in the views that might be
        // needed later.
        // Add code to clean up other strong references to the view in
        // the view hierarchy.
        self.view = nil;
    }
}

转载于:https://www.cnblogs.com/yy3026906/archive/2013/03/18/2966703.html

你可能感兴趣的文章
spark与flume整合
查看>>
数据挖掘工程师笔试及答案整理
查看>>
struts2获取ServletContext对象
查看>>
js实现菲波那切数列的两种常用方法
查看>>
【Shared Server Mode】测试调整shared_servers参数对数据库的影响
查看>>
TabLayoutViewPagerDemo【TabLayout+ViewPager可滑动】
查看>>
idea 配置热部署
查看>>
Java项目多数据源配置 (转)
查看>>
iOS-UICollectionView快速构造/拖拽重排/轮播实现
查看>>
两个服务之间的调用请求
查看>>
OAuth2.0的refresh token
查看>>
缓存技术简单讲解
查看>>
js进阶 11-24 jquery如何实现选项卡的制作
查看>>
一篇文章讲清楚,最近流行的“一码付”、“聚合支付”到底是个什么鬼?
查看>>
Android Studio编译报错“java.lang.OutOfMemoryError: GC overhead limit exceeded
查看>>
C# ASP.NET 通用权限管理系统组件的数据访问层的调用方法参考2 - 多种类型的多数据库连接方法...
查看>>
WIN32API之常用进程、线程函数
查看>>
完全分布模式hadoop集群安装配置之一安装第一个节点
查看>>
黄聪:在Photoshop中创建多种样式的网格背景图案(转)
查看>>
PL/SQL 如何导出INSERT语句
查看>>