2010-09-17 3 views
0

Я заметил странное поведение при добавлении и удалении UIViewControllers. . Я вообще-то не публикую какой-либо пример, у меня есть некоторые контроллеры представлений, которые загружают их представление из xib и других, которые я создаю для просмотра вручную. (Должен ли я объявлять Outlets для каждого элемента, созданного в IB, даже тех, которые являются статической графикой? или происходит ли процесс дезактивации автоматически как распределение?) Я, кажется, замечаю, что даже если я удаляю представление контроллеров представления, а затем освобождаю контроллер, распределение (живые байты) в инструментах, похоже, не падает. Каждый раз вызывается каждый раз. Каждый раз, когда я создаю контроллер вида, живые байты остаются такими же. Как если бы они не были ранее освобождены, а оставались кэшированными. Дело в том, что i есть ли у некоторых из них интенсивные взгляды? в графике, но не во всех из них в одно и то же время ... и байты складываются. Он идет примерно до 15 Мб памяти (в то время как приложение запускает ta 3 и большую часть времени это все, что ему потребуется). Я также проверил некоторые примеры яблок, и я заметил иногда такое же поведение. Это что-то, чего я не хватает? Может быть, это что-то, что я делаю неправильно, поэтому я должен опубликовать некоторый код, чтобы проверить, что может быть неправильным? Управление/проблема управления памятью UIViewController?

ответ

1

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

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

+0

никаких утечек не обнаружено, забыл упомянуть об этом .. и также проанализировать не сказал ничего интересного, кроме как из некоторых неиспользуемых vars..my основные вопросы остаются, если это может быть какое-то кэширование? потому что перераспределение не похоже на какой-либо другой ram – tasos

+0

только что нашел это в сообщении Когда вы загружаете файл nib, который содержит ссылки на изображения и звуковые ресурсы, код nib-загрузки кэширует ресурсы, когда это возможно, для легкого извлечения позже. Например, после загрузки файла nib вы можете получить изображение, связанное с этим файлом nib, используя метод imageNamed: либо NSImage, либо UIImage (в зависимости от вашей платформы). Так что я думаю, это может быть так, потому что мои xibs в основном содержат изображения или кнопки с пользовательскими изображениями и т. Д.! – tasos

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