viewDidUnload и dealloc всегда называют при разъединении UIViewController?

Я хотел бы знать действительно ли оба viewDidUnload и dealloc всегда называются по очереди в процессе разрушения UIViewController. Действительно ли это возможно это dealloc мог быть назван на моем контроллере представления без viewDidUnload будучи названным сначала?

Или в случае, если бы я безопасно выпускаю свойства и сохраненные ссылки в обоих методах, это не была бы проблема, если бы оба метода назвали - но я задавался вопросом, знал ли кто-либо наверняка или мог бы пролить некоторый свет на процесс разрушения.

Обновление 2012 года: удобно отметить это как будто iOS 6 viewDidUnload был удержан от использования и должен быть заменен ручным разрушением представления при необходимости в didReceiveMemoryWarning.

Хорошая статья о новом UIView/UIViewContoller и новое поведение и это являются эффектами на joe conway блог

20
задан Jessedc 9 October 2012 в 22:07
поделиться

1 ответ

viewDidUnload не будет вызываться каждый раз, как метод dealloc . viewDidUnload вызывается только тогда, когда ваше приложение получает предупреждение о нехватке памяти!

Подумайте, если вы освобождаете свой объект одновременно методами viewDidUnload и dealloc . Если оба вызываются каждый раз, то вы освобождаете уже выпущенный объект, что приведет к сбою приложения, не так ли? viewDidUnload - это место, предоставляемое Apple для очистки вещей при получении предупреждения о нехватке памяти, потому что вы знаете, что в iPhone у нас есть ограничение памяти.

35
ответ дан 30 November 2019 в 00:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: