为什么在启用NSZombie时我会看到所有这些泄漏?

vij*_*arg 4 memory-leaks ios nszombieenabled

我的第一个应用程序即将完成,我突然发现该应用程序导致内存泄漏.我发现了一些泄漏并修复了它们.现在没有泄漏,但令我惊讶的是,当NSZombie启用时,它显示超过4000个泄漏,主要来自框架.

我对NSZombie的确切用法感到困惑.它只用于寻找僵尸还是以任何方式找到泄漏?

这是一个屏幕截图,显示了与框架相关的所有泄漏:

泄漏的屏幕截图

ahw*_*ulf 5

我相信命令行选项'NSDeallocateZombies'默认为NO.因此僵尸永远不会被释放,因此如果僵尸(NSZombiesEnabled)打开则会出现泄漏.永远不要测试僵尸的泄漏.您也可以将NSDeallocateZombies转为YES,但我不确定它与Instruments的交互方式.僵尸是一个特殊对象,它响应所有带有异常的消息.为了使它变得有用,它必须存活很长时间(所以你可以在尝试重用已释放的对象时捕获它),但这使它看起来完全像泄漏.