UIViewController Управление памятью / Проблема? - PullRequest
0 голосов
/ 17 сентября 2010

Я заметил странное поведение при добавлении и удалении контроллеров UIViewController. Я пока не публикую ни одного примера, у меня есть некоторые контроллеры представления, которые загружают их представление из xib, и другие, которые я создаю представление вручную.для каждого элемента, созданного в IB - даже тех, которые являются статической графикой - или удаление происходит автоматически как распределение?) Что я, кажется, замечаю, это то, что хотя я удаляю представление контроллеров представления и затем освобождаю контроллер, распределение (живых байтов) в инструментах, кажется, не идет вниз. Dealloc вызывается каждый раз. В следующий раз, когда я создаю контроллер представления, живые байты остаются теми же. Как если бы они ранее не освобождались, но оставались в кэше. Дело в том, чтонесколько из них обрабатывают интенсивные представления?в графике, но не все из них в то же время .. и байты складываются. Это занимает около 15 МБ памяти (в то время как приложение запускает 3, и большую часть времени это все, что ему нужно). Я также проверилнекоторые из примеров яблок, и я иногда замечал то же самое поведение. Это то, чего мне не хватает?Может быть, это что-то, что я делаю неправильно, в частности, поэтому я должен опубликовать код, чтобы проверить, что может быть не так?Спасибо

1 Ответ

1 голос
/ 17 сентября 2010

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

Второе, что нужно проверить, это то, освобождаете ли вы выходы контроллера в его методе dealloc: при загрузке из файлов xib выходы сохраняются по умолчанию, если для них не определено свойство или если есть свойство с атрибутом 'retain',Так что, если вы не отпустите их, они должны протечь, я думаю (хотя инструменты не показали утечек для того случая, когда у меня была похожая проблема)

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