уточняющий вопрос как продолжение:
Что именно я должен делать в viewDidUnload?
Когда мне следует освобождать объекты в - (void) viewDidUnload, а не в -dealloc?
Итак, допустим, что в памяти недостаточно памяти, и представление скрыто, и вызывается viewDidUnload. Мы делаем релиз и ноль танца. Позже весь стек представлений не нужен, поэтому вызывается dealloc. Так как у меня уже есть содержимое release и nil в viewDidUnload, у меня его нет в dealloc. Совершенная.
Но если ошибки памяти недостаточно, viewDidUnload никогда не вызывается. Вызывается dealloc, и поскольку у меня нет версий и нулей, происходит утечка памяти.
Другими словами, будет ли когда-либо вызываться dealloc без вызова viewDidUnload?
И практическое продолжение этого заключается в том, что, если я выделяю и устанавливаю что-то в viewDidLoad, и я освобождаю это и устанавливаю nil в viewDidUnload, я оставляю это вне dealloc или я делаю защитную проверку nil в dealloc и выпустить / обнулить его, если не ноль?