В iOS 3.0 viewDidUnload
и viewDidLoad
были введены.
Если вы посмотрите на их описание, вы увидите, что:
viewDidLoad вызывается после того, как контроллер представления загрузил связанные виды в память. Этот метод вызывается независимо от того, были ли представления сохранены в файле пера или созданы программно в методе loadView.
Это означает, что как при загрузке вашего представления из Nib, так и когда вы создаете его программно (и фреймворк запрашивает вас в нужный момент loadView
), у вас есть единственная точка, где вы можете получить доступ к вашему новому просмотреть и завершить его инициализацию, например, добавить подпредставления или все, что вам нужно.
Аналогом viewDidLoad
является viewDidUnload
, который вы можете переопределить следующим образом:
-(void)viewDidUnload {
<do all the necessary clean up>
[super viewDidUnload];
}
Итак, у вас есть одна единственная точка для очистки, и вам не нужно выполнять какую-либо определенную очистку в didReceiveMemoryWarning
, потому что viewDidUnload
вызывается всякий раз, когда представление освобождается, т. Е. Также когда оно освобожден из-за didReceiveMemoryWarning
.
Это отличается от того, что происходило ранее с iOS 3.0, где вам приходилось предлагать собственную схему завершения инициализации и очистки без поддержки со стороны платформы, т. Е. Когда didReceiveMemoryWarning
вызвало освобождение представления, ваш метод очистки не был вызван автоматически, и вам пришлось продублировать код очистки (и выполнить очистку явно в didReceiveMemoryWarning
).