Я сталкиваюсь с проблемой, когда протоколы с ограниченным типом, определенные в отдельном модуле, не подтверждают тип с ограничениями.
Например, если я определяю следующий протокол:
public protocol SomeVCProtocol where Self: UIViewController {
func something()
}
И соответствовать этому:
extension SomeViewController: SomeVCProtocol {
func something() { }
}
let someVC: SomeVCProtocol = SomeViewController()
someVC.something()
someVC.present(UIViewController(), animated: true)
Здесь нет проблем. Я могу вызвать специфичные для протокола методы и UIViewController
. Однако в тот момент, когда я определяю SomeVCProtocol
в отдельном модуле, у меня больше нет доступа к методам UIViewController
. Это просто недостаток Swift или я что-то упускаю?