打开后,NSZombieEnabled
它将为EXC_BAD_ACCESS
运行时发生的问题提供一些保护。
我正在努力确保没有/很少的内存泄漏,但我可能会过度释放,所以NSZombieEnabled
打开将有助于防止这种情况,对吗?或者NSZombieEnabled
打开后,所有的内存释放操作都会被转换成无操作吗?这将是一个大问题是这样的。
打开后,NSZombieEnabled
它将为EXC_BAD_ACCESS
运行时发生的问题提供一些保护。
我正在努力确保没有/很少的内存泄漏,但我可能会过度释放,所以NSZombieEnabled
打开将有助于防止这种情况,对吗?或者NSZombieEnabled
打开后,所有的内存释放操作都会被转换成无操作吗?这将是一个大问题是这样的。
不,您不应该随NSZombiesEnable
. 僵尸通过将释放对象的 isa 指针转换为“僵尸”类来工作。NSDeallocateZombies
除非启用,否则不会释放此对象的存储空间。因此,如果您启用僵尸,您可能会泄漏内存。
此外,Apple 表示不要在以下位置启用它NSDebug.h
:
在此软件的未来版本中,不要依赖您的代码中是否存在任何这些符号。当然,不要依赖生产代码中此标头中的符号。
如果在 AppStore 上分发,我猜你不会通过审查。
您应该将其关闭,因为启用 NSZombieEnabled 意味着您分配的对象没有被释放,因此您的应用程序将泄漏。
http://www.cocoadev.com/index.pl?NSZombieEnabled
''NSZombieEnabled 不应永久保留,因为默认情况下不会真正释放任何对象,从而使您的应用程序使用大量内存''