Я совершенно уверен, что если вы проверите память в Instrument с помощью «Memory Tool» (см. Рисунок), вы увидите примерно то же использование памяти, что и при использовании бесплатного приложения iphone.
Действительно, по моему опыту, инструменты будут давать вам разную информацию об использовании памяти в зависимости от используемого вами инструмента; и, к сожалению, инструмент памяти - это тот, который дает наиболее «реалистичную» оценку. Я не могу объяснить, почему, но меня не удивляет, что на несколько МБ «живых байтов» у вас есть еще много МБ «реальной памяти».
Во всяком случае, я бы не беспокоился об этом. Если вы получаете 28 МБ и приложение не убито, возможно, вы используете «более поздние» устройства (не iPod touch и не iPhone 3); Я полагаю, что если вы тестировали на более старом устройстве, общая занятость памяти могла бы быть ниже (т. Е. Ваше приложение получало бы больше предупреждений о памяти, и если все было сделано правильно, больше просмотров было бы выгружено, освобождая больше памяти).
Что важно, IMO, это то, что когда вы возвращаетесь, память восстанавливается. В идеале это должно быть полностью восстановлено, но этого не всегда легко достичь.
![enter image description here](https://i.stack.imgur.com/oQhgQ.png)
Об общем потреблении памяти вашим приложением я думаю:
Прежде всего, вы должны проверить, что происходит, когда ваше приложение получает предупреждение о памяти; Я ожидаю, что многие из ваших ранее загруженных просмотров будут выгружены и память восстановлена; вы можете переопределить didReceiveMemoryWarning
в вашем контроллере, чтобы регистрировать, что они выгружены (не забудьте позвонить super
) и восстановить память при необходимости (система будет знать, когда это произойдет); как я уже сказал, я полагаю, что ваше приложение заполняет память, потому что оно не получает никаких предупреждений о памяти, суть в том, что происходит при получении предупреждения о памяти; если память восстановлена, то нет проблем; проблема в том, что вы получаете предупреждение, и объем памяти значительно не уменьшается;
Если проблема не устранена (т. Е. Механизм восстановления памяти не работает у вас должным образом), вы можете рассмотреть popping
контроллеры представления с контроллера навигации, прежде чем выдвигать новые. Вы можете попробовать, если это работает для вас ...