Проблема с ограниченным типом протоколов, определенных в отдельном модуле - PullRequest
1 голос
/ 21 октября 2019

Я сталкиваюсь с проблемой, когда протоколы с ограниченным типом, определенные в отдельном модуле, не подтверждают тип с ограничениями.

Например, если я определяю следующий протокол:

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 или я что-то упускаю?

...