类型为“某些视图”的属性不能覆盖类型为“某些视图”的属性

时间:2020-01-24 11:33:55

标签: swiftui

我想在子类中重写类型为“ some View”的计算属性,以返回不同的View,但出现这种奇怪的错误:

open class A {
   open var oneView: some View { ...
}

public class B : A {
   public override var oneView: some View { ...
}

“某些视图”类型的属性无法覆盖类型为“ “某些视图”

如何正确完成?

1 个答案:

答案 0 :(得分:1)

您可以将每个包装在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中即可。