NSZombieEnabled应该closures发布的应用程序或不?

随着NSZombieEnabled打开它将提供一些防范在运行时发生的EXC_BAD_ACCESS问题。

我正在做双重努力,以确保没有/less量内存泄漏,但我可能会释放,所以NSZombieEnabled打开将有助于防止这种情况,我是对的吗? 或者NSZombieEnabled打开,所有内存释放操作将被转换为无操作? 这将是一个大问题是这样的。

不,你不应该附带NSZombiesEnable 。 僵尸通过将释放对象的isa指针投射到“僵尸”类来工作。 除非启用NSDeallocateZombies否则不会释放此对象的存储。 因此,如果你让僵尸启用,你可能会泄漏内存。

另外,苹果表示不要在NSDebug.h启用它:

在此软件的未来版本中,不要依赖代码中任何这些符号的存在。 当然,不要依赖生产代码中这个头文件中的符号。

如果在AppStore上发布,我的猜测是你不会通过审查。

你应该closures它,因为NSZombieEnabled意味着你分配的对象没有被释放,因此你的应用程序将会泄漏。

http://www.cocoadev.com/index.pl?NSZombieEnabled

“NSZombieEnabled不应永久保留,因为默认情况下,任何对象都不会被真正释放,从而使您的应用程序使用大量的内存”