IOS 5 по-разному обрабатывает ситуации с нехваткой памяти? - PullRequest
1 голос
/ 05 февраля 2012

У меня проблема только в iOS 5.0, когда предупреждения о нехватке памяти, полученные при наличии модального представления, иногда могут оставить меня с белым экраном - я полагаю, это происходит потому, что мой контроллер панели вкладок освобождает все свои представления.

Те же сценарии не вызывают проблем в iOS 4.0. Я могу придумать два объяснения:

  1. iOS 5 использует больше оперативной памяти, оставляя приложению меньше
  2. iOS 5 по-разному относится к ситуациям с нехваткой памяти

В версиях до 5.0 я имел обыкновение отвечать на предупреждение о нехватке памяти, освобождая некоторую дополнительную память. В 5.0 кажется, что когда я впервые получаю предупреждение о нехватке памяти, все, что находится под моим контроллером модального представления, очищает его представление. Трассировка подтверждает, что после предупреждения о памяти все контроллеры под модальным контроллером представления имеют в своем поле view значение nil.

Может кто-нибудь указать мне информацию (в идеале от Apple) о том, как iOS 5 справляется с ситуациями с нехваткой памяти по сравнению с более ранними версиями? Я хотел бы иметь возможность освободить память при необходимости вместо того, чтобы очистить все мои взгляды.

Ответы [ 2 ]

0 голосов
/ 25 января 2013

У меня тоже была такая же проблема и я ее исправил. Проблема в том, что в методе viewDidUnload выходы, которые мы подключаем через xib, имеют значение nil. Этот метод вызывается во всех представлениях, которые в данный момент не видны, когда появляется предупреждение о памяти. Когда мы возвращаемся к этим представлениям, их метод viewDidLoad вызывается снова. Единственный способ исправить это - удалить методы setNil из viewDIdUnload в метод dealloc, и все будет работать нормально.

0 голосов
/ 05 февраля 2012

В ответ на вопрос в вашем последнем абзаце вы ищете Производительность iOS в глубине видео с WWDC 2011 . В нем обсуждается обработка нехватки памяти в iOS 5, начиная примерно через 13 или 14 минут, и обсуждаются изменения в предупреждающем сообщении о нехватке памяти, особенно начиная примерно через 16 минут.

Я не уверен, что это поможет вам понять, что не так с вашим приложением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...