2016-07-30 1 views
-1

У меня проблема с приложением, которое я сейчас разрабатываю: один из моих UIViewController s огромен (около 3000 строк).Как обращаться с огромными контроллерами представления, чтобы код не был грязным?

В настоящее время я создал расширения этого контроллера вида для обработки методов делегатов, чтобы «разбить» этот контроллер. Например, у меня есть мой главный контроллер представления с именем XYZMainViewController, и поскольку этот контроллер является делегатом UITextField, я создал расширение XYZMainViewControllerTextFieldDelegateExtension.swift, в котором я управляю UITextFieldDelegate методами.

Это все еще довольно грязно, чтобы сделать это таким образом. Мне интересно, что было бы хорошей практикой для обработки таких огромных контроллеров, как этот.

+0

https:.....//www.objc.io/issues/1-view-controllers/ –

+0

Огромный монитор? Маленький размер шрифта? – matt

ответ

0

Вы считаете, что для разработки своего приложения с использованием MVVM (модель представления вида модели) идея MVVM заключается в том, чтобы избежать огромных контроллеров. Есть много руководств пользователя, которые объясняют, как использовать MVVM в приложении IOS. Я столкнулся с той же ситуацией полгода назад, а затем я принимаю MVVM в своем приложении, и я очень доволен этим, так как мои контроллеры не огромны, я могу легко использовать код в своем приложении, а также гораздо проще создавать модульные тесты , Пожалуйста, следуйте этому руководству, которое объясняет, что MVVM и как использовать

ithttps: //www.raywenderlich.com/74106/mvvm-tutorial-with-reactivecocoa-part-1

https://www.raywenderlich.com/74131/mvvm-tutorial-with-reactivecocoa-part-2

0

3000 строк - хмммм.

Вы выполнили огромное количество задач в своем контроллере. Контроллеры должны контролировать представления. По моему мнению (способ создания структуры приложения iOS), контроллер должен выполнять управление представлением, передавая данные из моделей для просмотра (более конкретно из классов, которые манипулируют данными).

«Отдельные проблемы» здесь важны. Не выполняйте свою бизнес-логику внутри контроллеров. Должен быть отдельный модуль, который выполняет всю вашу бизнес-логику. Как манипулировать моделями и дополнять функциональность. Затем этот класс используется контроллером для выполнения обновлений вида.

Независимо от того, какой тип обзора os вы разработали, его контроллер не может быть 3000 линий. Делегирование не является проблемой. Контроллер - хорошее место для делегирования. Внутри этих методов делегирования для выполнения некоторых операций не работает контроллер. Существуют некоторые шаблоны проектирования для приложений IOS, таких как MVC, MVVM.

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

Благодаря

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