Неноминальный тип не поддерживает явную инициализацию - PullRequest
0 голосов
/ 24 ноября 2018

Этот вопрос задавался несколько раз, под моим вопросом - другие связанные вопросы с объяснением, почему это не сработало.

Это мой код:

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, который имеет инициализатор.

Попытка: неноминальный тип X не поддерживает явную инициализацию : тип 'Self.A' не имеет члена 'init' Swift 4: неноминальный тип 'T'не поддерживает явную инициализацию при преобразовании Objective-c в Swift : что-то другое Swift 4: «Неноминальный тип« T »не поддерживает явную инициализацию» : я думаю, что компилятор недействительно знаю точный тип.

...