SwiftUI节中的可选页眉和页脚,不透明的返回类型错误

时间:2020-04-20 18:04:56

标签: swift swiftui swiftui-list

我想要实现的是在ListView中具有不同的部分,这些部分可能显示或可能不显示页脚或页眉文本。由于Section的键入严格是具有页脚或页眉,或者两者都没有,因此我必须仔细研究所有情况才能创建该部分,如下面的代码所示。我遇到的问题是body给出了错误Function declares an opaque return type, but the return statement in its body do not have matching underlying types,所以据我所知,我想拥有一个唯一的返回类型,我想并不是这种情况。我是SwiftUI的新手,因此不确定在这种情况下如何解决此问题。在最后一种情况下也返回nil会抱怨'nil' requires a contextual type。谢谢!

struct CMGeneralSettingsSectionView: View {

        @Binding var section: CMGeneralSettingsSection

        var body: some View {
            if let headerTitle = section.headerTitle {
                if let footerTitle = section.footerTitle {
                    return Section(header: Text(headerTitle),
                                   footer: Text(footerTitle)) {
                                    return Text("")
                    }
                } else {
                    return Section(header: Text(headerTitle)) {
                        return Text("")
                    }
                }
            } else {
                if let footerTitle = section.footerTitle {
                    return Section(footer: Text(footerTitle)) {
                        return Text("")
                    }
                } else {
                    return nil
                }
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

使您的<dial> <number>...</number> <number>...</number> <number>...</number> </dial> 视图生成器并返回string s = {c, c2}; 而不是nil,由于非可选的body返回类型,因此不允许nil。

这是固定的变体

EmptyView