Где освободить все мои взгляды, если я получил предупреждения памяти? - PullRequest
2 голосов
/ 08 сентября 2011

Если я получаю предупреждения о памяти, где именно я должен выпустить все свои представления и данные?

Должен ли я выпустить в

- (void)didReceiveMemoryWarning или в

- (void)viewDidUnload

Ответы [ 2 ]

1 голос
/ 08 сентября 2011
- (void)didReceiveMemoryWarning

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

- (void)viewDidUnload

Здесь вы убедитесь, что представления будут освобождены, если на них дополнительно ссылается контроллер представления. Вы можете обратиться к этому вопросу: Когда использовать viewDidUnload

1 голос
/ 08 сентября 2011

Для iPhone OS 3.0 и более поздних версий viewDidUnload может вызываться при нехватке памяти, поэтому лучше всего освободить представления в viewDidUnload, просто обратите внимание, что для пользовательских представлений создайте их в viewDidLoad вместо метода init класса.

didReceiveMemoryWarning используется больше для освобождения пользовательских структур данных вместо освобождения представлений.

...