启用NSZombieEnabled后,它将提供一些防范措施,以防止在运行时发生EXC_BAD_ACCESS问题。

我正在尽力确保没有/很少的内存泄漏,但是我可能会过分释放,因此打开NSZombieEnabled将有助于防止这种情况,对吗?还是在NSZombieEnabled打开的情况下,所有内存释放操作都可以转换为无操作吗?确实是一个大问题。

最佳答案

不,您不应该附带NSZombiesEnable。僵尸通过将释放对象的isa指针转换为“僵尸”类来工作。除非启用oj​​it_code,否则不会释放该对象的存储。因此,如果使僵尸处于启用状态,则可能正在泄漏内存。

此外,Apple表示不要在NSDeallocateZombies中保持启用状态:

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

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

关于ios - 是否应为已发布的应用关闭NSZombieEnabled?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8647432/

10-11 04:52