好吧,这个问题听起来很傻,但是...
当我以分析模式或仪器运行我的应用程序时,没有任何泄漏(分析模式)或内存(仪器)泄漏。
这是否意味着我的应用程序100%无内存泄漏?
最佳答案
不会。一方面,您必须在应用程序中运行所有可能的执行路径/状态序列,才能明确地说通过简单的测试就不会泄漏。更重要的是,真正的内存泄漏是您不释放内存但不再对其进行引用的情况,这是仪器能够检测到的所有泄漏。
但是,这些并不是您可以创建的唯一类似问题。您还可以轻松地不丢弃不再需要的数据,从而导致内存增加。这不是真正的泄漏,因为您仍然对有问题的数据有引用,只是您没有发布它并摆脱了对它的引用。
您仍然可以使用分配工具找到此类问题。它不会显式标记问题,但可以让您查看是否分配了以后不释放的大量内存。特别是在iOS上,确保不再需要已分配的内存时很重要,否则在OS终止您的应用程序之前,您的应用程序的内存使用量将会增加。