[英]Swift generic parameter inference error
我遇到了快速的編譯器錯誤,無法解決該錯誤。 請參見下面的代碼段。 最后一行的編譯器錯誤以及我在注釋行中顯示的消息。 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)
上面的代碼可以用Xcode 9編譯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.