Где инициализировать структуры данных: init или viewDidLoad? - PullRequest
5 голосов
/ 15 января 2012

Как лучше всего инициализировать структуры данных, используемые для отображения контента в моих контроллерах представления: init или viewDidLoad?

Кроме того, в каком случае мне следует их выпускать: dealloc, viewDidUnload или didReceiveMemoryWarning?

1 Ответ

3 голосов
/ 15 января 2012

Всеобъемлющий ответ: «Это зависит от вашего жизненного цикла представления».Каждый метод имеет свое место относительно того, как ваши представления будут загружаться и отображаться.

Однако, как правило, viewDidLoad - это хорошее место по умолчанию, чтобы идти первым - ваши представления XIB уже будут созданы, так что вы можете установить их свойства.Если вы выполняете большую загрузку и выгрузку представлений, вы можете отправить чистые данные, которые являются довольно статичными, к вашим init вызовам.

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

ETA: освободите память при дополнительных вызовах туда, где вы ее распределяете.В dealloc, viewDidUnload или viewDidDisappear.didReceiveMemoryWarning всегда должен выгружать все, что вы можете, независимо от того, где вы его инициализируете, и ваш код должен быть достаточно умным, чтобы перезагрузить данные, когда они снова станут активными.

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