Когда вы используете автоматический подсчет ссылок, вы не можете позвонить release
.Это ошибка компилятора.
При ручном подсчете ссылок вы должны release
, а затем установить nil
.Установка переменной nil
и последующий вызов release
приводит к утечке объекта (он не освобождает его).Он не потерпит крах, но он съест память (в конечном итоге, возможно, столько памяти, что операционная система остановит вас).
ARC - ваш лучший инструмент для уменьшения сбоев.Не существует механизма, который мог бы устранить все возможности аварий.Но помогут два очень простых правила:
- Используйте ARC, если это вообще возможно.
- Включите «Обрабатывать предупреждения как ошибки».Никогда не допускайте предупреждений в Objective-C.
Есть много других небольших правил, но это те два, с которых каждый разработчик iOS должен начинать.