双释放自动释放的对象不会崩溃

时间:2011-12-02 09:24:45

标签: objective-c crash autorelease

我正在测试我的代码,我意识到我正在发布一个自动释放的对象,但应用程序没有崩溃。 所以我从头开始创建了一个新的空项目,只有几行:

NSArray *array = [NSArray array];
[array release];
[array release];
[array release];
[array release];
...

这不会永远崩溃,也不会在GDB中标记为僵尸对象。如果我用Product - >分析代码分析它没有发现任何错误。

通常它应该崩溃我认为...... 我正在使用Apple LLVM编译器3.0测试Xcode 4.2,但旧的gcc 4.2也是如此。

有关它为何会发生的任何想法吗?

由于

1 个答案:

答案 0 :(得分:2)

如果启用了垃圾收集,那么这是一个无操作。我猜,是的。