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