这个问题已经问了好几次了,在我的问题下面是与其他问题相关的链接,并解释了为什么它做得不好。
这是我的代码:
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":我认为编译器实际上并不知道确切的类型。