Повторное использование кода в приложениях iOS - PullRequest
5 голосов
/ 19 октября 2011

Я очень новичок в разработке для ios, скорее я только начал работу над своим первым приложением.Теперь у моего приложения есть кнопка «Домой» почти на каждой странице, а за этой кнопкой вызывается тот же фрагмент кода, чтобы перейти на главный экран.Это много повторяющегося кода в каждом контроллере, который имеет кнопку домой.И это только пример.Есть много других сценариев, подобных этому, и программист все еще учится кодировать, я думаю, что это плохая практика, так как любое изменение должно быть сделано отдельно на каждом контроллере.

Итак, мой вопрос, каковы лучшие практики в таких сценарияхэто при кодировании для ios ??

Ответы [ 4 ]

4 голосов
/ 19 октября 2011

В этой ситуации легко сделать подкласс UIViewController (например, MyAppMasterVC) и определить свою кнопку следующим образом:

- (IBAction)myCommonButtonAction { // code and such }

Во всех ваших контроллерах представления наследуйте от этого вместо UIViewController (а-ля @interface MyNewViewController : MyAppMasterVC).

2 голосов
/ 19 октября 2011

Разработка программного обеспечения для iOS в этом смысле ничем не отличается от любой другой разработки программного обеспечения.Просто объедините свою логику в некоторый общий класс или функцию и используйте ее так, как считаете нужным.Часто оказывается, что вы не знаете, какая часть может быть общей и многократно используемой, пока не напишите несколько фрагментов кода, и только тогда вы поймете, что все это может быть одной функцией.Процесс организации существующего кода, его очистки, придания ему большей читабельности и возможности повторного использования называется рефакторинг кода .Есть много книг по рефакторингу, которые объясняют различные шаблоны проектирования , методы и процессы улучшения вашего кода.Я рекомендую вам прочитать некоторые из них, чтобы получить лучшую картину.

2 голосов
/ 19 октября 2011

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

1 голос
/ 19 октября 2011

Эта проблема не зависит от языка / платформы. Используемый термин «СУХОЙ», аббревиатура от «Не повторяйся».

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

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