некоторые пользовательские UIView потеряли после того, как мое приложение для iPad получило предупреждение о памяти - PullRequest
0 голосов
/ 29 декабря 2010

Я разрабатываю приложение для просмотра онлайн-фотографий и иногда получаю предупреждение о памяти (уровень 1), после чего, если я возвращаюсь к последнему UIViewController (в NavigationControll), я обнаружил, что некоторые пользовательские UIView потеряли, я не могуполучить их обратно, но я могу создать новый такой UIView

кто-нибудь знает проблему?

Ответы [ 2 ]

3 голосов
/ 29 декабря 2010

Память предупреждает о том, что ОС выдает все ненужные представления. Если вы создадите их в IB или в методах viewDidLoad или loadView в вашем контроллере представления, они будут воссозданы при повторной загрузке вашего представления. Вы также можете сделать так, чтобы ваш контроллер представления сохранял их специально, но это занимало бы больший объем памяти, чем просто воссоздание их, когда бы они ни понадобились.

Я должен сказать, что loadView вызывается только в том случае, если вы не используете перо для создания своего представления, поэтому viewDidLoad - это, вероятно, место, где вы хотите их разместить.

1 голос
/ 29 декабря 2010

Это ожидаемое поведение.Вы можете переопределить didReceiveMemoryWarning (т.е. ничего не делать и не вызывать супер);но то, что вы действительно хотите, - это правильно обрабатывать эти ситуации, т. е. при необходимости заново настраивать представления.

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