简体   繁体   English

Swift通用参数推断错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM