是真的NSZombies会导致崩溃吗?

时间:2014-03-20 15:38:41

标签: ios objective-c automatic-ref-counting nszombies

我在这里读到,启用了ARC的NSZombies实际上可能会导致崩溃,我也读过它不能导致崩溃。人们已经说过,它可能会因为没有在对象上调用dealloc而导致崩溃。这是真的吗?仍然如此吗?我意识到它可能因内存耗尽而崩溃,但这是僵尸启用时唯一可能导致崩溃的原因吗?

我正在看的帖子是:NSZombie crashing app when enabled on the iPhone

2 个答案:

答案 0 :(得分:2)

目前尚不清楚你在问什么。

通过NSZombies,您的意思是在项目中将NSZombies标志设置为true吗?是的,这会导致程序的内存永远增长,最终会耗尽内存并崩溃。 (当启用僵尸时,运行时不会在dealloc上释放对象,而是将它们标记为僵尸并使其内存使用。)

如果你的意思是可以在你的程序中拥有僵尸(被解除分配的对象,但你的代码试图向他们发送消息)那么是的,那可能,并且经常会导致崩溃。僵尸在ARC下不太常见,但仍有可能。

答案 1 :(得分:0)

设置NSZombieEnabled本身不会导致崩溃。

当然,您应用中的其他隐藏错误可能会显示为内存使用量变化的副作用。

  

人们说它可能会因为没有在对象上调用dealloc而导致崩溃。

事实并非如此。启用僵尸检测不会阻止调用dealloc

相关问题