我定义了以下泛型类:
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]