Вызывается ли didReceiveMemoryWarning / viewDidUnload при отображении контроллера представления? - PullRequest
5 голосов
/ 10 февраля 2012

Вопрос о didReceiveMemoryWarning / viewDidUnload.

Если в моем приложении много контроллеров представления, отображается один из них, а остальные - обратно (из-за того, что я использую контроллер навигации или контроллер панели вкладок(это не имеет значения), какие контроллеры представления получат didReceiveMemoryWarning / viewDidUnload, все они, только скрытые или только показанные?

Возможно ли, что показанный VC получает didReceiveMemoryWarning, но не viewDidUnload (потому что, как показано, это не имеет никакого смысла).

Кстати, у меня есть следующие вопросы после просмотра этой диаграммы: UIViewController init/dealloc flow chart

Большое спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 10 февраля 2012

Во-первых, существует два метода didReceiveMemwarnings:

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application

вызывается, когда приложение получает предупреждение о памяти из системы.и

- (void)didReceiveMemoryWarning

UIViewController отправляется в контроллер представления, когда приложение получает предупреждение памяти.

Во-вторых, сначала вызывается код в этих методах (ну, конечно), затем вконтроллеры, у которых нет суперпредставлений (то есть тех, которые не отображаются в данный момент), представление удаляется и отправляется viewDidUnload

0 голосов
/ 10 февраля 2012

Когда получено предупреждение о памяти, оно получено на уровне приложения, все ваши viewControllers и appdelegate получают его.

Нет необходимости, чтобы viewDidUnload вызывался для любого или всех контроллеров.Это строго зависит от того, насколько критична ОС считает предупреждение памяти.Как и в первый раз - ваше приложение получает предупреждение Level 1, затем Level 2 и, скорее всего, в третий раз (через короткий промежуток времени) ОС завершит работу приложения, полагая, что оно перешло в нестабильное состояние.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...