【发布时间】:2013-11-15 20:22:22
【问题描述】:
我的应用因重复操作而收到内存不足警告并最终崩溃。当我在仪器中进行分析时,崩溃时我只看到 5.7 MB 的活动字节。 (崩溃显示没有回溯,没有错误等。它只是终止,这表明内存崩溃。)
为什么我的应用程序因内存占用如此之低而崩溃?我一直在 iPad 1 上测试 iOS 5.1。
编辑:
我能够修复崩溃。这是由于对具有 3 个 UIImages 作为属性的对象进行了额外的保留调用。这些对象的堆积导致内存警告和崩溃。
但是,问题仍然存在:为什么 Instruments 显示只有 5.7MB 的活动字节?这可能是由于UIImage's 自动缓存造成的吗?
【问题讨论】:
-
崩溃可能不是由于内存不足。什么是崩溃错误?
-
好主意,但没有给出回溯或错误。它只是终止。 (我已在编辑中将此添加到问题中。)
-
看来您确实应该确定崩溃的确切来源。见My App Crashed, Now What?
-
另一种想法是,如果您在仪器中添加按钮库“内存监视器”工具,您还可以看到您的内存如何下降
-
这可能是内存工具本身的问题,因为当 NSMutableString 由于我的逻辑错误而不断增长时,我也发生了类似的事情。我所看到的只是内存警告和应用程序在几次之后崩溃,但当时的内存使用量仅为约 8 MB。症状是内存迅速增长到约 8 MB,在那里保持了大约几分钟,然后警告就来了。一段时间后,应用程序挂起并崩溃,有什么意义吗?
标签: ios iphone xcode memory-management instruments