Фон: У меня есть контроллер панели вкладок, который в настоящее время содержит 4 вкладки. 3 из вкладок являются контроллерами навигации, которые отображают иерархию табличных представлений для просмотра, редактирования и создания данных. Данные, как правило, представляют собой строки NSS, которые берутся у пользователя и хранятся в глобальной переменной (доступ к данным должен осуществляться из нескольких представлений в иерархии, а также из нескольких вкладок).
Проблема Я заметил, что мое приложение использует довольно много памяти, как только оно запускается (~ 11 МБ ). Однако, когда я прокручиваю представления таблицы и использую контроллер nav для доступа к другим представлениям таблицы и редактирования некоторых данных, использование памяти быстро достигает почти 20 МБ. Хуже всего то, что отказ от контроллеров подробного представления не приводит к уменьшению использования памяти. Он будет колебаться вокруг 20-21mb , и, если я повторю процесс, я, похоже, получаю все больше и больше использования памяти. Я протестировал свое приложение в Leaks и решил все проблемы там. Я подозреваю, что мои неактивные контроллеры представления все еще находятся в памяти, даже если они не отображаются в данный момент. Есть ли способ освободить ненужные контроллеры представления в иерархии контроллера навигации или даже неактивные контроллеры представления из панели вкладок? Я читал документы Apple, и они настоятельно рекомендуют реализовать didReceiveMemoryWarning:
и applicationDidReceiveMemoryWarning:
в контроллерах представления и делегате приложения. Я действительно не знаю, с чего начать с этими методами. Какие контроллеры я могу выпустить и как их воссоздать? Я предполагаю, что я несу ответственность за это, но я хотел бы быть уверен.
Обратите внимание, что я еще не завершил работу моего приложения из-за низкого использования памяти, но достаточное количество повторений ввода данных (много нажатий и выталкиваний контроллера представления) приведет к замедлению сканирования.