Проблемы с памятью: предупреждение о симуляции памяти / didReceiveMemoryWarning - PullRequest
2 голосов
/ 17 августа 2010

Приложение имеет 4 контроллера вида; Меню, A, B и C, а также одноэлементный класс для хранения данных в 4 массивах, которые записываются на диск по завершении приложения. Выбор из меню создает экземпляр A, «a»; выбор из «a» создает экземпляр B, «b», а из «b» выбор вызывает модальное представление ввода данных «c».

Я имитирую предупреждение памяти из «b», и содержимое 4 массивов (введенных в «c») исчезает, но не сразу, только после возврата к «b» (все еще существует в «b»), а затем обратно в «а» - где-то в «а» между viewDiDAppear, где данные отображаются идеально, и viewWillDisappear, куда они ушли, даже когда единственное, что я делаю, - это нажимаю кнопку «назад».

По моему опыту, всплывают предупреждения с памятью, но я озадачен, почему появляются массивы. Я попытался «сохранить» после создания, но содержимое все равно исчезло.

Любые мысли о том, что может случиться, приветствуются.

Спасибо.

1 Ответ

3 голосов
/ 18 августа 2010

Что было не совсем очевидно для меня (хотя это и должно было быть), так это то, что при освобождении представлений при следующем вызове этого представления снова вызывается метод viewDidLoad; так как я инициализировал свои массивы в методе viewDidLoad, они были уничтожены.

Надеюсь, что однажды в будущем этот пост сэкономит кому-то время, которое я потратил на это (и, по крайней мере, тогда я не буду чувствовать себя так плохо, что по поводу 'duh view view, viewDidLoad должен быть вызван')

...