Дорого ли постоянно снимать и выделять в Цели С? - PullRequest
0 голосов
/ 05 марта 2012

У меня есть приложение для iPhone с меню из 4 опций, которое позволяет пользователю быстро переключаться между контроллерами представления. Поэтому я подумал, чтобы сделать процесс более плавным, каждый раз, когда пользователь переключается между контроллерами представления, контроллер вида from сразу же освобождается и выделяется to. И пользователь, скорее всего, будет много переключаться. Есть ли лучший способ обработать память здесь, чем продолжать выпускать и распределять одни и те же контроллеры представления снова и снова?

Ответы [ 3 ]

2 голосов
/ 05 марта 2012

Просмотр контроллеров не дорогой.Это нормально распределять и освобождать их.Однако мнения могут быть дорогими.Когда памяти мало, система пытается выгрузить представления контроллеров представления, которые в данный момент не видны.Ваше приложение всегда должно знать об этом.Выпуск дорогих объектов в viewDidUnload, то есть IBOutlets и данных, которые могут быть воссозданы.

Если вы испытываете проблемы с производительностью, вы должны держать все 4 контроллера представления в памяти.Таким образом, представления будут загружаться быстрее.iOS заботится о выгрузке невидимых представлений (при необходимости).

1 голос
/ 05 марта 2012

Похоже, вам лучше было бы использовать панель вкладок?

Если память - ваша главная проблема, то, похоже, вы будете много загружать и выгружать, что будет медленнее для конечного пользователя.

Если вы используете контроллер панели вкладок, то представления в неиспользуемых вкладках будут автоматически выгружаться, если потребуется память. и загружается снова, если / когда это необходимо.

1 голос
/ 05 марта 2012

Если пользователь выполняет переключение, время, проведенное в dealloc и / или alloc, совершенно незначительно, исключая любые чрезвычайно трудоемкие операции, такие как загрузка десятков / сотен изображений и т. Д.

Короче говоря, обарешение по требованию и кэшированное решение будут иметь небольшое преимущество перед другим.Ваши пользователи не заметят разницу.

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