[英]Swift generic parameter inference error
I got swift compiler error that I cannot figure out how to fix. 我遇到了快速的编译器错误,无法解决该错误。 Plase see code snippet bellow.
请参见下面的代码段。 Compiler errors out on the last line with the message I put into commented line.
最后一行的编译器错误以及我在注释行中显示的消息。 Xcode 8.3.3
Xcode 8.3.3
class View {
}
protocol FieldView {
associatedtype Value
var value: Value { get set }
}
class FormView<Field: View>: View where Field: FieldView {
let fields: [Field]
init(fields: [Field]) {
self.fields = fields
}
}
class BoolFieldView: View, FieldView {
var value: Bool = false
}
class TextFieldView: View, FieldView {
var value: String = ""
}
let fields = [BoolFieldView(), TextFieldView()]
// error: generic parameter 'Field' could not be inferred
let form = FormView(fields: fields)
let fields1 = [BoolFieldView()]
let fields2 = [TextFieldView()]
let form1 = FormView(fields:fields1)
let form2 = FormView(fields:fields2)
The above code can compile with Xcode 9. 上面的代码可以用Xcode 9编译。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.