iOS 6 中的 didReceiveMemoryWarning
Posted
技术标签:
【中文标题】iOS 6 中的 didReceiveMemoryWarning【英文标题】:didReceiveMemoryWarning in iOS 6 【发布时间】:2013-05-11 00:02:55 【问题描述】:我正在开始一个针对 ios 6 的新项目(没有 ARC)。来自Apple doc:
使用此方法释放所有关联的非关键对象 你的视图控制器。在 iOS 6 上,您也可以使用此方法 释放对视图对象的引用。
我的问题是,在我们解除分配didReceiveMemoryWarning
中的“非关键对象”之后,我们什么时候可以再次恢复“非关键对象”?
我之所以问这个问题是因为在 iOS6 中永远不会调用 viewDidUnload
,我认为在程序终止之前不会第二次调用 viewDidLoad
。我说的对吗?
【问题讨论】:
"我认为在程序终止前第二次不会调用 viewDidLoad ...(我说得对吗?)"是的。 为什么有人不使用ARC????随便问问。 感谢您的评论和帮助。在 ARC 出来之前就开始了我的第一个项目,并且已经习惯了 RC 方案。听说 ARC 不应该有任何性能损失,并且可以节省大量工作。但我对非 ARC 方案非常满意,并且不觉得关注 r 值有太多开销。 我的意见? ARC!!!这只是非 ARC 文件的简单编译器标志。 感谢您的评论。再想一想,我想说我确实觉得 ARC 是一个非常好的概念,因为它节省了编码工作并且不影响性能(它肯定也应该减少编码错误的机会)。习惯某事并不是不尝试新事物和更好事物的借口…… 【参考方案1】:对非关键数据使用延迟加载。清除didReceiveMemoryWarning
中的这些数据。然后下次尝试访问时,数据将再次延迟加载。
【讨论】:
这里有一些实际的代码说明了@rmaddy 所说的内容:apeth.com/iOSBook/ch19.html#SECvcmem 感谢大家的详细解答和帮助。以上是关于iOS 6 中的 didReceiveMemoryWarning的主要内容,如果未能解决你的问题,请参考以下文章
iOS 6 中的 didReceiveMemoryWarning
ios 6 中的 UITabBarController 旋转问题
Angular 6 中的 socket.io-stream 导入问题