我有一个描述视图列表的结构
struct A<T: View> {
let view: T.Type
}
struct B<???> {
let items: [A<???>]
}
并希望通过以下方式描述该应用
let content = [
B(items: [
A(view: View1.self),
A(view: View2.self)
])
]
B
的通用类型是什么?我能以某种方式使其工作吗?就像在Java中将view
声明为View
一样。
答案 0 :(得分:1)
您只需要这个:
struct A<T: View> {
let view: T
}
struct B<T: View> {
let items: [A<T>]
}
let content = [
B(items: [
A(view: View1),
A(view: View2)
])
]
答案 1 :(得分:1)
我敢打赌,您不只是在使用元类型。如果是,则将元类型内置到类型中。您不需要存储它:
struct A<View: SwiftUI.View> { }
struct B<View: SwiftUI.View> {
let items: [A<View>]
}
struct View: SwiftUI.View {
var body: some SwiftUI.View {
Text("?⚔️")
}
}
let content = [
B<View>(items: [A(), A()])
]
否则,请使用科学怪人的答案。 ⚡️