Получено предупреждение памяти в модальном представлении - объекты родительского контроллера освобождаются.Как предотвратить? - PullRequest
2 голосов
/ 06 октября 2010

Мой контроллер корневого представления - это карта с несколькими аннотациями.Когда аннотация выбрана и нажата дополнительная кнопка, я отображаю модальный вид, который выглядит следующим образом: http://i.stack.imgur.com/hACyH.png

В этом модальном виде вы можете получить вид улицы на координату аннотаций (я делаюэто с помощью UIWebview).Вы также можете отправить фотографию или выполнить несколько других задач, которые, по-видимому, занимают относительно много места в памяти.Каждый раз, когда я получаю сообщение «Предупреждение о получении памяти» в консоли, пока у меня отображается модальное представление, родительские объекты (т.е. объект MapKit), по-видимому, освобождаются, потому что, как только я отклоняю модальное представление, карта теперь центрируется в центреЗемля (где-то на юге Атлантического океана недалеко от Африки) и стол пуст.

Я хочу сохранить эти объекты, даже если есть предупреждение о памяти.Это, по-видимому, вызывает то, что viewDidUnload вызывается в корневом контроллере представления, и в этом методе я устанавливаю все мои переменные равными nil.Как правильно справиться с ситуацией с памятью?

Спасибо!

1 Ответ

3 голосов
/ 06 октября 2010

Если вы получите didReceiveMemoryWarning, реализация по умолчанию выгрузит свое представление, если это нормально, и затем вызовет viewDidUnload.Я не знаю, как вы настроили свой контроллер, но вам, возможно, придется сохранить текущую координату, а затем, когда вызывается viewDidLoad / Appear, вы можете убедиться, что карта установлена ​​в желаемое местоположение.Вот яблочные документы на контроллере вида жизненный цикл

...