我想在我的子类中覆盖类型为"some View"的计算属性以返回不同的视图,但我收到这个奇怪的错误:
open class A {
open var oneView: some View { ...
}
public class B : A {
public override var oneView: some View { ...
}
类型为"some View"的属性不能覆盖类型为"某些视图"的属性 "一些观点">
如何正确完成?
您可以将每个包装在AnyView
中。它的工作原理是这样的:
open class A {
open var oneView: AnyView {
AnyView(Text("A"))
}
}
public class B: A {
public override var oneView: AnyView {
AnyView(Text("B"))
}
}
例如,如果您想在视图主体内有一个VStack
,您只需要确保将其包装在AnyView
中。