仪器中没有泄漏,即使我确定它们存在

时间:2009-06-28 23:53:42

标签: iphone xcode memory-leaks instruments

我正在检查仪器的泄漏情况,我已经开始检查每一秒,但没有出现泄漏。

我确信在我的应用程序中肯定有一些东西,有什么东西可以阻止它们出现吗?有没有一种方法可以创建泄漏,以便我可以测试泄漏是否显示在仪器中?

谢谢!

3 个答案:

答案 0 :(得分:3)

创建泄漏很容易:

id someObject = [[NSObject alloc] init];
someObject = nil;

将一些类似代码放入您的应用程序中,您肯定会看到仪器中出现泄漏。

答案 1 :(得分:1)

如果分配了一个对象但不再引用了对象,那么您只会发现工具泄漏。另一种类型的“泄漏”是指对你不想要的东西的引用。这通常发生在像哈希表或字典这样的集合中,其中键/值对留在程序员忘记的集合中。

答案 2 :(得分:1)

我非常确定clemahieu假设,你真正看到的是过度保留的对象 - 你认为你已经释放了它们但它们仍然被保留。

对此进行快速健全性检查是在dealloc中设置断点,并查看您希望释放的类是否真的是。

您还可以使用内存跟踪仪器(不泄漏)来查看仍然存在的内存 - 只需确保选择“已创建并仍然可用”选项以查看仍然存在的对象。