Нет, но:
- Вам не нужно проверять этот случай.
[nil release]
нормально.
- Вы не можете рассчитывать на
viewDidUnload
, когда вам звонят.
Так что просто отпустите как обычно в -dealloc
.
Конечно, вы должны убедиться, что вы действительно выпустили предыдущий объект. Вы неявно делаете это , если использовали синтезированный сеттер :
self.myProperty = nil; // good
// or
[self setMyProperty:nil]; // also good
Но при установке значения ivar на nil произойдет утечка:
self->myProperty = nil; // leaky as a sieve
// or
myProperty = nil; // as useful as a screen door on a submarine
Это распространенные ошибки.
Также обратите внимание, что установка свойств на nil в -dealloc
- плохая идея. Как отмечает Кендалл в комментариях, вы можете неожиданно вызвать поведение KVO. Более полное обсуждение можно найти в Свойства в dealloc: release, а затем установить nil? или просто отпустите .