2016-09-28 2 views
0

Я хотел бы знать, сколько памяти делает один ViewController, потому что, когда я разрабатываю некоторые приложения, я все еще не уверен, что лучше создать больше ViewControllers, или если я должен создать меньше ViewControllers и изменить ситуацию в кода, а не UserInterface.Сколько памяти занимает один ViewController?

Пример того, что я имею в виду: предположим, что у меня есть два типа данных, и я хочу их увидеть на представленном ViewController, но эти два типа почти одинаковы. Так должен ли я иметь только один ViewController и изменить код в коде, или я могу просто создать ViewController для каждого типа?

Я знаю, что это зависит от того, сколько кода и сколько вещей в пользовательском интерфейсе, но давайте скажем, что это несколько строк кода, и только самые основные ViewController

Я смотрел в Роль зрения Контроллеры от Apple, но я не смог найти ответ. https://developer.apple.com/library/content/featuredarticles/ViewControllerPGforiPhoneOS/index.html#//apple_ref/doc/uid/TP40007457-CH2-SW1

Я знаю, что это немного странно, но мне действительно интересно. Спасибо.

+0

Этот вопрос является большим расплывчатым и трудно ответить абстрактно. Если вы можете привести практический пример фактических двух типов, о которых вы думаете, мы, возможно, можем предложить лучший совет. – Rob

ответ

3

Неиспользуемый контроллер вида не использует память. Это занимает тривиальное количество дискового пространства как часть приложения, но без памяти во время выполнения до его создания и отображения.

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

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

После того, как он работает, затем запустите его с помощью инструментов и убедитесь, что у вас нет утечек или контрольных циклов, теряющих память.

1

Размер дополнительных классов контроллера просмотра в вашем коде ничтожен, поэтому, если вы не говорите о каком-то экстремальном количестве, я бы не стал беспокоиться об этом. Принцип управления здесь, скорее всего, будет DRY. Если у вас есть куча объектов, которые отличаются очень малыми способами (например, имена на ярлыках и т. Д.), То, возможно, вы можете создать общий протокол, которому соответствуют все эти объекты, а затем вы можете написать контроллер вида предназначенный для этого протокола, а не какой-либо конкретный объект. Но если вы обнаружите, что добавляете кучу неудобных if заявлений и программно добавляете элементы управления, просто чтобы избежать нескольких сцен в вашем раскадровке, вы, возможно, зашли слишком далеко.

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