繁体   English   中英

即使我确定它们存在,仪器中也不会出现泄漏

[英]No leaks appearing in Instruments, even though I'm sure they exist

我正在检查仪器中的泄漏,并且已设置为每秒检查一次,但是没有泄漏出现。

我确定我的应用程序中必须有一些东西,是否有任何东西可以阻止这些东西出现? 有什么好方法可以创建泄漏,以便可以测试仪器中是否确实出现泄漏?

谢谢!

创建泄漏很容易:

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

将类似的代码放到您的应用中,您肯定会在Instruments中看到泄漏。

如果分配了对象但不再引用该对象,则只会使用工具查找泄漏。 “泄漏”的另一种类型是保留对您不想要的内容的引用。 这通常发生在哈希表或字典之类的集合中,其中键/值对保留在程序员遗忘的集合中。

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

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

您还可以使用内存跟踪工具(而不是泄漏)来查看仍然有哪些内存-只需确保选择“创建并仍然存在”选项,以检查出仍然有哪些对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM