Может кто-нибудь мне помочь? мое приложение вылетает при прохождении, у меня был отключен NSZombies, и у меня также был этот код

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    [[NSURLCache sharedURLCache] removeAllCachedResponses];
}

Но мое приложение все еще вылетает. Приложение содержит изображения и некоторые веб-просмотры, которые загружают локальные изображения. Пожалуйста, объясните мне, как оптимизировать приложение, чтобы избежать сбоев.

Заранее спасибо

3
user2641085 3 Июл 2014 в 10:36

3 ответа

Лучший ответ

Я каким-то образом нашел способ увеличить использование памяти, мне просто нужно выполнить removeAllCachedResponses для каждого viewDidLoad ViewControllers, потому что didReceiveMemoryWarning был довольно поздно или откладывался для очистки кешированных ответов при срабатывании предупреждения о памяти, это может не выглядеть хорошо в коде, но это мешает хранить и пополнять память и кеши. Я все еще не могу назвать это решением, но это каким-то образом эффективный превентивный метод предотвращения утечки памяти.

0
user2641085 7 Июл 2014 в 03:58

Когда вы закончите с выделенными объектами, явно установите для них значение nil, чтобы освободить память.

Даже если вы используете ARC, это ускорит очистку.

0
Castro Kitchner 3 Июл 2014 в 11:17

На скриншоте видно несколько ошибок:

  1. Приложение было убито системой, потому что вы выделяете слишком много памяти.

    Использование памяти 261.4MB - это слишком много! Вы говорите, что загружаете локальные изображения. Убедитесь, что эти изображения как можно меньше (в пикселях) и хранятся в памяти только до тех пор, пока они необходимы для текущего просмотра. Здесь много дискуссий о том, как это сделать. Если вы не нашли решения, опубликуйте новый вопрос со своим кодом, указав, сколько изображений и их размер в пикселях, используете ли вы ARC или нет, а также что вы пытались это исправить. . Используйте инструмент Allocations Instruments из Xcode, чтобы узнать, где в вашем коде вы выделяете слишком много памяти.

  2. Журнал консоли показывает множество проблем с ограничениями автоматического размещения.

    Это тоже следует исправить. Задайте новый вопрос с более подробной информацией о такой проблеме, если вы не можете ее исправить. Здесь также много дискуссий по таким вопросам, которые должны помочь. Воспользуйтесь функцией поиска на этом сайте!

3
Kerni 3 Июл 2014 в 11:06