【问题标题】:How to loop through keys in struct for SwiftUI?如何遍历 SwiftUI 结构中的键?
【发布时间】:2020-07-16 10:45:00
【问题描述】:

我很久以前做过 XCode,现在回来学习 SwiftUI。我正在尝试在 HStack 中呈现结构的数据。

结构如下所示:

struct Product: Hashable, Codable{
    var column0: Int
    var column1: String
    var column2: String
    var column3: String
    var column4: String
}

在视图主体内部有这样的东西:

var pdt: Product
var body: some View {
        HStack {
             Text(pdt.column1)
             Text(pdt.column2)
        }
}

以上方法可行,但我不想硬编码 column1column2,因为列数会有所不同。如何将 pdt 用作字典并循环遍历键以便显示所有列?

提前非常感谢!

【问题讨论】:

    标签: swiftui xcode11


    【解决方案1】:

    这是一个可能的方法的演示(对于这个简单的案例) - 您可以反映属性并将它们映射到显示的值(对于自定义/复杂类型,这需要更多的努力,思路应该很清楚)。

    var body: some View {
        let columnValues = Mirror(reflecting: pdt)
                              .children.map { "\($0.value)" }
        return HStack {
            ForEach(columnValues, id: \.self) { Text($0) }
        }
    }
    

    【讨论】:

    • 我必须说我对 SwiftUI 完全陌生,所以我可能会犯一个非常初学者的错误。我收到错误“未分类:Command CompileSwiftSources failed with a nonzero exit code”。
    • 好的,我收回!我重新启动,现在它工作正常!谢谢!
    • 如果结构中的变量是optionals会发生什么?我们如何打开它们?
    猜你喜欢
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    • 2015-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多