2010-10-25 3 views
6

Я работаю над приложением с XML-парсером, uiwebview, навигационным контроллером, отображающим множество изображений на главном контроллере, который остается в памяти на протяжении всей жизни приложения. Я храню свои данные с использованием основных данных.
Я попытался выяснить размер памяти приложения, так как получаю следующие предупреждения:Предупреждение о принимаемой памяти

Предупреждение о наличии памяти. Уровень = 1
приложение делегата получил память предупреждения
главного контроллера получил память предупреждения
главного контроллера получил память предупреждения
RSSItem получил память предупреждения

Полученного предупреждения памяти. Уровень = 2
приложение делегата получил память предупреждения
главного контроллера получил память предупреждения
главного контроллера получил память предупреждения
RSSItem получил память предупреждения

Отпечаток составляет около 4MB, и вскакивает вокруг, может быть 10, когда я разверните и отобразите UIWebViews со значительным количеством изображений. Это слишком большой размер? Я предполагаю, что есть приложения, которые значительно сложнее. Из того, что я понимаю, в приложениях доступно 40-70 МБ, дайте или возьмите, но определенно не предел 10 МБ. У любого есть понимание, что я могу сделать, чтобы исправить это или решить проблему. У меня нет утечек. Я боюсь, что настоящая проблема - это не след, а что-то еще, о чем я не знаю. Спасибо за любую помощь.

ответ

5

У вас есть инструменты для анализа памяти в Instruments.app - это покажет вам много данных, связанных с распределением в вашем приложении.

Если бы я должен был угадать: уничтожить изображения, которые не видны.

+1

Спасибо, Джастин. Определенно, это хорошая идея минимизировать использование памяти, если это возможно, и я над этим работаю. Но все же, 3-10 МБ не так уж и много. В то же время я просто раскомментировал [super didReceiveMemoryWarning] в didReceiveMemoryWarning. Кажется, что это работает, хотя я уверен, что это неправильный способ устранить проблему. – Zsolt

+0

yw. Кроме того, вы * должны * вызывать 'super' в своем переопределении. сначала вызовите 'super', если вам не требуется определенное поведение. – justin

Смежные вопросы