我花了几天时间研究这个问题。由于内存泄漏,我的应用程序在 iPod Touch 中崩溃了。
我已经通过 Xcode 中的 Instrument 准确监控了堆增长,并确认代码正在使应用程序占用的内存在每个事件上都增加。
我需要在这里提一下,我正在使用 ARC,因此我真的没想到应用程序会因为内存问题而崩溃,尽管 ARC 在使用 Core Foundation 时没有帮助,但我没有直接在我的应用程序中使用 Core Foundation。但是 MBProgressHUD 已添加到我使用此框架的应用程序中。我没有为 MBProgressHUD 启用 ARC,因为它会导致大量内存增长。
我仍然无法跟踪导致我的应用程序内存增长如此之多并导致应用程序崩溃的主要问题/变量/代码。
PS:仪器显示了一些导致大量内存分配的函数,但在这些函数中,我也不知道如何在启用 ARC 时释放这些变量(它是自动管理的)。
请建议我是否在正确的方向。