【问题标题】:Should NSZombieEnabled be turned off for released app or not?NSZombieEnabled 是否应该为已发布的应用程序关闭?
【发布时间】:2011-12-27 17:27:07
【问题描述】:
启用NSZombieEnabled 后,它将提供一些防范EXC_BAD_ACCESS 在运行时发生的问题。
我正在努力确保没有/很少的内存泄漏,但我可能会过度释放,因此打开 NSZombieEnabled 将有助于防止这种情况,对吗?或者打开NSZombieEnabled,所有的内存释放操作都会被转换成无操作吗?这将是一个大问题是这样的。
【问题讨论】:
标签:
ios
memory-management
release
nszombieenabled
【解决方案1】:
不,您不应该使用NSZombiesEnable。僵尸通过将释放对象的 isa 指针转换为“僵尸”类来工作。除非启用NSDeallocateZombies,否则不会释放此对象的存储空间。因此,如果您启用僵尸,您可能会泄漏内存。
此外,Apple 表示不要在NSDebug.h 中启用它:
不要依赖代码中是否存在这些符号
在此软件的未来版本中。当然,不要依赖于
生产代码中此标头中的符号。
如果在 AppStore 上分发,我猜你不会通过审核。