【问题标题】:SwiftUI Array - Ignore nil ValueSwiftUI 数组 - 忽略零值
【发布时间】:2020-05-19 19:04:18
【问题描述】:

我有一个已导入的 JSON 文件。 json 文件中的所有记录都有一个项目,该项目是一个由 1 到 3 个项目组成的数组。 这导致列表失败,因为有些记录只有一个条目,而其他记录可能有 2 个或 3 个。 当我专门引用元素 0 时,应用程序运行,但如果我转到元素 2 或 3,应用程序预计会崩溃。 有没有办法让应用程序忽略 nil 值并运行。 JSON 文件示例

[  
    {
        "id": 1,
       "tla":"ABR",
       "name":"Abbey Road",
       "lines": ["Dockland Light"]
    },
    {
       "id": 2,
       "tla":"ACT",
       "name":"Acton Town",
       "lines": ["District", "Piccadilly"]
    },
    {
       "id": 3,
       "tla":"ALD",
       "name":"Aldgate",
       "lines": ["Hammersmith", "Metropolitan"]
    }
]

目标是列出所有行,无论行由 1、2 还是 3 组成

List {


                ForEach(self.allStations.dataStructure,id: \.id) { TubeLines in


                    Text("\(TubeLines.lines[0])")
                    .foregroundColor(Color.blue)

                }


        }

【问题讨论】:

    标签: swift swiftui


    【解决方案1】:
    List {
        ForEach(self.allStations.dataStructure,id: \.id) { TubeLines in
            ForEach(TubeLines.lines, id: \.self) { line in
                        Text("\(line)")
                        .foregroundColor(Color.blue)
            }
    
            }
    }
    

    像这样?

    【讨论】:

      【解决方案2】:

      我会使用带索引的 ForEach 循环并计算每个数组的元素。硬编码数组索引只是自找麻烦。这样的事情可能会奏效:

      ForEach(0..<array.count) { i in
            Text("\(self.array[i])")
              .foregroundColor(Color.blue)
          }
      

      我从这里Get index in ForEach in SwiftUI的这个答案中提取了这个

      【讨论】:

      • 第二个答案能够产生结果(行)第一个错误,即需要可识别的。我放了一个但得到了这个错误实例方法'appendInterpolation'要求'[String]'符合'_FormatSpecifiable'
      猜你喜欢
      • 2023-03-26
      • 2020-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-23
      • 1970-01-01
      • 2011-07-17
      • 2013-06-20
      相关资源
      最近更新 更多