уточняющий вопрос, как следовать до:Последующие viewDidUnload против dealloc вопрос
What exactly must I do in viewDidUnload? When should I release objects in -(void)viewDidUnload rather than in -dealloc?
Так скажем, есть низкая ошибка памяти, и вид скрыт, и viewDidUnload называется. Мы делаем выпуск и ноль танцуем. Позже весь стек представления не нужен, поэтому вызывается dealloc. Поскольку у меня уже есть релиз и нуль в viewDidUnload, у меня его нет в dealloc. Отлично.
Но если нет низкой ошибки памяти, viewDidUnload никогда не вызывается. dealloc называется, и поскольку у меня нет релиза и нулевого материала, происходит утечка памяти.
Другими словами, будет ли dealloc когда-либо вызываться без вызова viewDidUnload?
И практический подход к этому, если я выложу и что-то установил в viewDidLoad, и я его выпустил и установил в nil в viewDidUnload, не могу ли я оставить его из dealloc, или я делаю защитную проверку nil dealloc и release/ноль, если это не ноль?
Вы знаете, что вы можете отправить nil сообщение о выпуске без проблем, не так ли? nil просто игнорирует все отправленные сообщения и возвращает nil как значение без ошибок. Нет необходимости в защитных проверках на нуль, например, с NULL –