Раньше мне приходилось распутывать код в контроллерах вида большого размера, и это поначалу мешало мне ориентироваться в контенте. Одна важная вещь, которую я осознал, заключается в том, что один только размер View Controller не был достаточной причиной, чтобы разбить вещи на части. Есть сложность иметь один большой файл, а также сложность иметь кучу маленьких файлов. Вот несколько веских причин для рефакторинга, чтобы разбить View Controller на более мелкие части:
MVC
Контроллер вида не должен делать больше, чем быть связующим звеном между представлением и моделью. Если у вас много кода сетевого подключения, кода манипуляции с изображениями и т. Д., Подумайте о том, чтобы разбить их на вспомогательные классы.
Несколько элементов управления с View Controller в качестве источника данных
Если на экране имеется несколько элементов управления, в которых в качестве источника данных используется View Controller, рассмотрите возможность их разбиения на отдельные объекты источника данных и используйте их в качестве источника данных. Или вы также можете разбить их на отдельные контроллеры представления (например, если у вашего View Controller есть табличное представление в дополнение к другому контроллеру, вы можете разбить его на собственный класс Table View Controller).
Дубликат кода
Если у вас один и тот же код в разных контроллерах представления, поместите его в 1 общее местоположение. Это сделает ваш код многократно используемым и поможет справиться со сложностью.
Вот несколько дополнительных советов, чтобы минимизировать сложность View Controller:
Раскадровка вместо Programmatic
Создание элементов View - это много кода, а код геометрии фрейма - это тоже много работы. Если это еще не сделано, рассмотрите возможность использования автоматических ограничений макета и размещения как можно большего количества элементов представления в раскадровке.
Ненужный код / комментарии
Также обязательно удалите ненужный код / комментарии. Часто новый файл View Controller будет содержать методы, которые вы не используете. Если вы не используете такой метод, didReceiveMemoryWarning
то его можно безопасно удалить. Кроме того, из-за того, что файл View Controller очень большой, иногда бывает страшно удалить старый код или комментарии. Не откладывайте это! Это только добавляет сложности.
Уведомления
Чтобы ответить на ваш вопрос об уведомлениях: Уведомления - это не золотой молоток, который можно использовать со всем. Я считаю уведомления полезными, когда необходимо обновить несколько контроллеров представления одновременно из-за одного конкретного действия. Будьте осторожны с уведомлениями, однако, чрезмерное их использование может причинить вам много боли, пытаясь отследить их.