Двойное освобождение автоматически выпущенного объекта не приводит к сбою - PullRequest
0 голосов
/ 02 декабря 2011

Я тестировал свой код и понял, что выпускаю автоматически выпущенный объект, но приложение не зависло.Поэтому я создал новый пустой проект с нуля всего за несколько строк:

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

Это никогда не завершается сбоем и не помечается как объект-зомби в GDB.Если я анализирую код с помощью Product -> Analyse, он не находит никаких ошибок.

Обычно он должен вылетать, я думаю ... Я тестирую на Xcode 4.2 с компилятором Apple LLVM 3.0, но то же самое верно и длястарый gcc 4.2.

Есть идеи о том, почему это происходит?

Спасибо

1 Ответ

2 голосов
/ 02 декабря 2011

Запрещено, если сборка мусора включена.Я полагаю, это так.

...