Прежде всего: рассмотрите возможность перехода на ARC, если вы не поддерживаете версии iOS до 4.0.
Во-вторых, лучшая практика написания dealloc
методов гласит: не вызывать сеттеры. Вместо этого прямо отпустите и обнулите ваши торговые точки:
[myImage release], myImage = nil;
Наконец, при объединении методов деинициализации, таких как viewDidUnload
, всегда вызывайте реализацию super
после выполнения своей собственной работы.
Причина, по которой мы исключаем розетки в viewDidUnload
, заключается в том, что иногда представления выгружаются, когда система испытывает недостаток памяти. Поскольку эти выходы легко воссоздаются, реализация viewDidUnload
- это способ повысить производительность, а в экстремальных ситуациях предотвратить принудительное завершение работы вашего приложения.
Причина, по которой мы открываем свойства в dealloc
, заключается в предотвращении утечек памяти. Таким образом, хотя эти два метода могут выглядеть довольно схожими, они служат несколько разным целям.