У меня есть несколько ViewControllers все с несколькими методами, как ниже (и это практически единственные методы в классах.)Рефакторинг помогают уменьшить дублирование
@IBAction func witnessNameAction(sender: RoundCornerButton) {
presentTextEntryFromViewController(self, initialText: incidentReport.witnessName, completion: { [unowned self] text in
self.incidentReport.witnessName = text
})
sender.setTapped()
}
@IBAction func witnessDescriptionAction(sender: RoundCornerButton) {
presentTextEntryFromViewController(self, initialText: incidentReport.witnessDescription, completion: { [unowned self] text in
self.incidentReport.witnessDescription = text
})
sender.setTapped()
}
Обратите внимание, что единственное различие между этими двумя методами выше какая текстовая переменная получает/устанавливает. Я открыт для любых идей о том, как реорганизовать эти методы.
Архитектура MVVM может сушить это. Тем не менее, вам решать, нужно ли рефакторинг, это высокий приоритет в рамках проекта. – mattt
Мне бы хотелось услышать больше @mattt. Вышеупомянутый код - из ViewModel. (Apple называет их ViewControllers, но они выполняют ту же самую цель, насколько мне известно.) –
Контроллеры iOS не являются моделями просмотра. Есть много хороших сообщений в блоге по этому вопросу, если вы ищете архитектуру MVVM на iOS. – mattt