Это АБСОЛЮТНО имеет значение.
То, что вы делаете, зависит от того, используете ли вы автоматический подсчет ссылок (ARC) или ручной подсчет ссылок.
Использование ручного выпускаRetain
Manual Release-Retain (MRR) - это управление памятью по умолчанию для всех версий Mac OS X и единственный способ обрабатывать память до Xcode 4.2.
С MRR, [super dealloc]
должнобыть на конце вашего метода.
Итак, ваш код должен выглядеть следующим образом:
- (void)dealloc
{
[member release];
[super dealloc];
}
Super dealloc фактически освобождает память,Подумай об этом.Если после этого вы получите доступ к переменной экземпляра, например:
[super dealloc];
[member release];
... это означает, что переменная экземпляра потенциально недопустима.Теоретически байты, в которых хранится указатель на член, могли бы быть заменены на вызовы super dealloc и вызовом освобождения члена!
Как Apple объясняет в Руководство по программированию управления памятью :
Роль метода dealloc заключается в освобождении собственной памяти объекта и удалении любых ресурсов, которые он содержит, включая владение любыми переменными экземпляра объекта.
Вы делаете это, распоряжаясь любыми ресурсами, которыми владеет ваш объект, и вызывая [super dealloc]
.Который располагает любые объекты, которые он держит, и называет его супер.И так далее, и так далее, пока в конечном итоге корневой объект не отметит память, используемую самим экземпляром, как свободную.Ко времени возврата [super dealloc]
ваш экземпляр будет освобожден.(Конечно, указатели в нем , вероятно, действительны, но это деталь реализации, на которую не следует полагаться.)
Как правило, при построении (или загрузке) пусть super выполняетработать в первую очередь.При сносе делайте сначала свою работу.
См. Также:
- dealloc , справочник классов по NSObject, библиотека разработчика Mac OS X
- Отмена выделения объекта , владение и распоряжение объектом, Руководство по программированию управления памятью, Библиотека разработчика Mac OS X
С автоматическим подсчетом ссылок
Автоматический подсчет ссылок (ARC) - это новый способ управления памятью, представленный в Xcode 4.2.С ARC компилятор добавляет код управления памятью при компиляции вашего приложения.У него есть некоторые недостатки, о которых вы хотите прочитать больше (прежде всего, ограниченная совместимость со старыми версиями ОС).
С ARC вы не можете (и не можете) звонить [super dealloc]
ввсе.Вместо этого [super dealloc]
вызывается, когда заканчивается dealloc
.
См. Также: