非标称类型不支持显式初始化

时间:2018-11-24 15:32:52

标签: swift protocols swift-protocols

这个问题已经问了好几次了,在我的问题下面是与其他问题相关的链接,并解释了为什么它做得不好。

这是我的代码:

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类型。

已尝试: non-nominal type X does not support explicit initialization:类型'Self.A'没有成员'init' Swift 4: Non-nominal type 'T' does not support explicit initialization when converting Objective-c to Swift:还有其他东西 Swift 4: "Non-nominal type 'T' does not support explicit initialization":我认为编译器实际上并不知道确切的类型。

0 个答案:

没有答案