首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在IOS中忽略didReceiveMemoryWarning

在IOS中忽略didReceiveMemoryWarning
EN

Stack Overflow用户
提问于 2015-04-17 00:31:10
回答 1查看 184关注 0票数 0

根据苹果公司的文档,如果应用程序忽略内存警告,系统可能会强制释放脏内存,如果它需要一些。同时,在某些情况下,出于性能原因,手动释放数据以响应内存警告并在稍后恢复它是不可接受的。那么有没有可能知道某些类实例成员是否被强制清除呢?他们是否被分配了nil?那么,作为Obj-C对象成员的C++对象的指针又如何呢?

EN

回答 1

Stack Overflow用户

发布于 2015-04-17 00:51:23

这不是它的工作方式。操作系统将通过退出应用程序来释放内存。操作系统不能进入并随机删除对象,因为它无法了解哪些对象可以安全清除,哪些对象不能。

IIRC它有时做的唯一一件事就是卸载一些视图控制器的视图(而不是实际的控制器对象),这些视图是堆叠在导航控制器中并且当前不可见的。它之所以能做到这一点,是因为它知道如何加载这些视图,以及它们被哪些ivars引用(因为您通过IBOutlet等方式告诉它),所以它可以并且实际上将这些都设置为空。

更新:现在也有一些缓存类会在收到内存警告时驱逐它们的对象,但您必须显式地使用这些类才能释放对象。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29680829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档