У меня есть метод протокола, а при его реализации для класса я хочу, чтобы этот метод имел некоторые значения по умолчанию. Но поскольку сам протокол не может иметь значения по умолчанию, я не знаю, как использовать значения по умолчанию.Метод протокола и значения по умолчанию
class Foo: Bar {
func addText(text: String, alignment: Int = 0, newLine: Bool = true) {
print(text, alignment, newLine)
}
}
protocol Bar {
func addText(text: String, alignment: Int, newLine: Bool)
}
let a: Bar = Foo()
let b: Foo = Foo()
a.addText("someText") // This results in an error (Missing argument...)
b.addText("someText") // This works
Можно ли использовать значения по умолчанию без необходимости бросать класс или перегружать метод вручную?
Edit:
Он работает, когда я добавить расширение к протоколу Bar
extension Bar {
func addText(text: String, alignment: Int = 0, newLine: Bool = true) { }
}
Является ли это единственный способ?
Скриншот детской площадки:
Я только что разместил ответ. Это способ. Расширения протокола - это новая крутая вещь. – crashoverride777
Но теперь, когда я вызываю метод 'addText', он ничего не печатает. –
Он должен. Когда я копирую код на игровой площадке, я вижу отчет о печати. – crashoverride777