簡體   English   中英

Swift通用參數推斷錯誤

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM