Приложению iOS не хватает памяти без предупреждения о нехватке памяти

У меня есть существующее приложение, в которое я недавно внес некоторые изменения, и я тестирую эти изменения. Приложение отлично работает на всех iPad, на которых я его тестировал (iOS 4 и iOS 5). После загрузки нескольких (50+) изображений с большим количеством изображений в моем приложении я получаю предупреждение о нехватке памяти, и мои методы viewDidUnload вызываются, и они должным образом обнуляют все свои элементы управления, и мой кеш изображений в памяти очищается, и приложение продолжает только отлично.

Однако на iPhone 4 и iPhone4s (iOS 5.0.1 и iOS 5.1) я сталкиваюсь с проблемой, когда моему приложению не хватает памяти, но при этом не появляется предупреждение о нехватке памяти. После загрузки нескольких разных представлений в конечном итоге появится новое представление, которое будет в основном пустым, а на консоли я вижу сообщения о выделении памяти, и весь телефон перестает отвечать на запросы и иногда убивает мое приложение.

Конкретное представление, в котором это происходит, каждый раз отличается, поэтому это не связано с каким-то одним представлением, а просто накоплением памяти с течением времени. Я также подтвердил, что у меня нет утечек памяти.

Этот существующий вопрос похож:

Приложение IOS отключено из-за нехватки памяти, но не получено предупреждение о памяти

, и этот ответ предполагает, что это может произойти, если я застрял в цикле, но я почти уверен, что мой код не застрял ни в каких циклах. Я просто перехожу от одного представления к другому в UINavigationController, и в каждом представлении загружается несколько изображений. Кроме того, другой вопрос возник конкретно на iPad, где я не вижу этой проблемы на iPad, только на iPhone.

Кстати, я пытался зарегистрироваться для получения уведомления о нехватке памяти через NotificationCenter, и у меня есть метод applicationDidReceiveMemoryWarning в моем делегате приложения, и у обоих есть точки останова, но ни один из них не вызывается. Кроме того, в консоли отладчика также не отображается сообщение о нехватке памяти.

Есть идеи, что может происходить?


Добавлено 26.03.2012:

Интересно, что когда я тестировал свое приложение на новом iPad, у него была та же проблема, что и на iPhone 4 и 4s, где уведомление о нехватке памяти отсутствует. получают. Поэтому мне интересно, наблюдаю ли я ту же проблему, что и в этой другой теме:

Новый iPad: предупреждения о нехватке памяти не появляются?

, но разработчик в этой ветке тестирует приложение только для iPad и, следовательно, не тестирует и не обнаруживает эту же проблему ни на одном iPhone.

Я провел тщательное тестирование, и у меня есть список устройств, на которых я правильно получил предупреждение о нехватке памяти, и устройств, на которых я никогда его не получал. Пока я вижу проблему только на iOS5 или более поздней версии, однако на iPad1 с iOS 5.0 и 5.1 я не вижу проблемы, так что это проблема не только на всех устройствах с iOS 5.

Вот этот список:

Предупреждение о нехватке памяти

iPad1 4.2.1
iPad1 5.0
iPad1 5.1
iPad2 4.3.3
iPhone3G 4.2.1
iPod 3G 4.3.3
iPhone4 4.3.3

Предупреждение о нехватке памяти

iPhone4 5.1
iPhone4s 5.0.1
iPad3 5.1

12
задан Community 23 May 2017 в 11:51
поделиться