是否可以拥有View
属性?
struct MyObj {
var myView: View
}
尝试此操作时,出现编译器错误:Protocol 'View' can only be used as a generic constraint because it has Self or associated type requirements
答案 0 :(得分:4)
如果您想要一个可以容纳任何类型的View
的属性,则有两种选择。
如果在运行时它始终是相同类型的视图,则可以使容器通用:
struct MyObject<Content: View> {
var myView: Content
}
如果希望它在运行时保存不同类型的视图,则需要使用AnyView
:
struct MyObject {
var myView: AnyView
}
并且在分配给属性后,您需要将视图实例手动包装在AnyView
中。
答案 1 :(得分:-1)
您必须使用5.1。尝试:
var myView: some View