#swift #frameworks #protocols #initializer #ambiguity
#быстрый #фреймворки #протоколы #инициализатор #неоднозначность
Вопрос:
Я объявил инициализатор в расширении для встроенного типа протокола.
extension SomeProtocol {
init(fromData: Data) { // my code here }
}
Фреймворк, который я использую, также объявляет инициализатор для того же протокола с той же сигнатурой функции.
Поэтому, когда я пытаюсь вызвать свой инициализатор, я получаю сообщение об ошибке двусмысленности:
let myObject = SomeProtocolConformingObject(fromData: data) // error
Я знаю, что вы можете указать функции верхнего уровня из фреймворка следующим образом:
SomeFramework.topLevelFunction()
Но как я могу указать, чтобы использовать мой инициализатор или инициализатор фреймворка, не изменяя сигнатуру функции?