启用NSZombieEnabled
后,它将提供一些防范措施,以防止在运行时发生EXC_BAD_ACCESS
问题。
我正在尽力确保没有/很少的内存泄漏,但是我可能会过分释放,因此打开NSZombieEnabled
将有助于防止这种情况,对吗?还是在NSZombieEnabled
打开的情况下,所有内存释放操作都可以转换为无操作吗?确实是一个大问题。
最佳答案
不,您不应该附带NSZombiesEnable
。僵尸通过将释放对象的isa指针转换为“僵尸”类来工作。除非启用ojit_code,否则不会释放该对象的存储。因此,如果使僵尸处于启用状态,则可能正在泄漏内存。
此外,Apple表示不要在NSDeallocateZombies
中保持启用状态:
不要依赖于代码中任何这些符号的存在
在此软件的将来版本中。当然,不要依赖于
生产代码中此标头中的符号。
如果在AppStore上发布,我的猜测是您不会通过审核。
关于ios - 是否应为已发布的应用关闭NSZombieEnabled?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8647432/