Этот вопрос задавался несколько раз, под моим вопросом - другие связанные вопросы с объяснением, почему это не сработало.
Это мой код:
protocol SomeProtocol { init() } protocol Initializable where Self: SomeProtocol {} protocol ProtocolA { associatedtype A: Initializable } extension ProtocolA { func a() { A() } }
Ошибка:
Non-nominal type 'Self.A' does not support explicit initialization
Я не понимаю, почему нет.Связанный тип A всегда является типом SomeProtocol, который имеет инициализатор.
A
SomeProtocol
Попытка: неноминальный тип X не поддерживает явную инициализацию : тип 'Self.A' не имеет члена 'init' Swift 4: неноминальный тип 'T'не поддерживает явную инициализацию при преобразовании Objective-c в Swift : что-то другое Swift 4: «Неноминальный тип« T »не поддерживает явную инициализацию» : я думаю, что компилятор недействительно знаю точный тип.