【发布时间】:2019-12-14 07:38:04
【问题描述】:
我很好奇 SwiftUI 中 AnyView 的默认实现。如何将不同泛型类型的结构体放入协议数组中?
例如:
let a = AnyView(Text("hello"))
let b = AnyView(Image(systemName: "1.circle"))
let genericViews = [a, b] // No compile error
还有我的实现:
struct TypeErasedView<V: View>: View {
private var _view: V
init(_ view: V) {
_view = view
}
var body: V {
_view
}
}
let a = TypeErasedView(Text("Hello"))
let b = TypeErasedView(Image(systemName: "1.circle"))
let genericViews = [a, b] // compile error
编译错误将是“只能将异构集合文字推断为'[Any]';如果这是故意的,请添加显式类型注释”。
有人有什么想法吗?
【问题讨论】:
标签: swiftui