У меня есть метод в протоколе и я использую этот метод много раз.Теперь мне нужно добавить еще один параметр в этом методе.Мне просто нужно передать этот параметр в одном случае.Поэтому я добавил значение по умолчанию в этом параметре.Но протокол не принимает значение по умолчанию.Итак, что я сделал:
protocol TestP {
func update(srId: String, srType: String? )
}
class Test: TestP {
func update(srId: String, srType: String? = "") {
print("abc")
}
}
let test: TestP = Test()
test.update(srId: "abc")
Но здесь я получаю ошибку error: missing argument for parameter 'srType' in call
, потому что во время компиляции он проверяет метод в протоколе и не находит значение по умолчанию для srType
.Поэтому я пытаюсь добавить тот же метод в расширение Protocol, как указано:
extension TestP {
func update(srId: String, srType: String? = "") {
print("abc")
}
}
Здесь должен быть вызван метод класса Test
, поскольку объект имеет класс Test
.Но каждый раз вызывается метод протокола.Я не знаю, что не так с моим кодом?Как я могу это сделать?