我定义了以下泛型类:

class HView<V: UIView> {
    let vw: V
    init(_ vw: V) {
        self.vw = vw
    }

    var view: UIView {
        get { return vw }
    }
}

如何定义以下内容以保存此类的实例?
var hviews: [HView]   // Error: reference to generic type 'HView' requires arguments in <...>
var hviews: [HView<?>]   // Error: Expected Type

最佳答案

这不是Java:P
你需要定义typy

var hviews: [HView<UILabel>]

您还可以定义协议,并在实现此协议之后
protocol HViewProtocol {
    var view: UIView { get }
}

class HView<V: UIView>: HViewProtocol {
    let vw: V
    init(_ vw: V) {
        self.vw = vw
    }

    var view: UIView {
        get { return vw }
    }
}

var hviews: [HViewProtocol]

10-07 18:35