Если вы выдаете предупреждение о предупреждении памяти в симуляторе (смотрите в меню), это вызовет вызов для любого контроллера вида, прикрепленного к виду, которое не отображается.
Это потому, что контроллеры представлений по умолчанию регистрируются для уведомлений о предупреждении памяти, и любой вид, который в настоящее время не используется, будет выгружен контроллером представления - существует метод viewDidUnload, чтобы вы могли очистить все, что захотите , чтобы сохранить дополнительную память (или если вы сохранили некоторые IBOutlets, чтобы освободить память, которая в противном случае была бы выпущена при разгрузке представления).
Как правило, любые IBOutlets, которые вы выпускаете в dealloc, также должны быть освобождены (и ссылки установлены на ноль) в этом методе.
Похоже, что это не обязательно вызвано; UIViewController может быть освобожден без первого вызова viewDidUnload. – beetstra
После обширного тестирования я определенно вижу, что viewDidUnload иногда НЕ может быть вызван. Я вижу, что контроллеры просмотра получают dealloc'd без вызова viewDidUnload. –
Этот вопрос необходимо удалить. viewDidUnload устарел и больше не вызывается в iOS 6. –