Если у вас такой протокол:
protocol Messaging {
func sendMessage(message: String)
}
Есть ли способ удовлетворить его в таком классе:
class Messager: Messaging {
func sendMessage(message: String, count: Int = 1) {}
}
Это было бы неплохо иметь, поскольку итоговая сигнатура протокола удовлетворена добавлением параметра по умолчанию. Есть ли способ заставить это работать с Swift 2?
Это упрощенный пример. Скажем, ради аргумента, что протокол исправлен. Решение может обновить только класс Messager. Моя цель - называть sendMessage()
следующим образом:
let m: Messaging = Messager()
m.sendMessage("")
Единственный способ, которым я нашел для этого (и удовлетворить компилятор), - это перегрузка следующим образом:
class Messager: Messaging {
func sendMessage(message: String) {
self.sendMessage(message, count: 1)
}
func sendMessage(message: String, count: Int = 1) {}
}
Проблема с этим подходом заключается в том, что мои значения по умолчанию затем указываются в двух местах, и я теряю основное преимущество параметров по умолчанию Swift.