SwiftUI 嵌套数组结构并在列表中显示
Posted
技术标签:
【中文标题】SwiftUI 嵌套数组结构并在列表中显示【英文标题】:SwiftUI Nested Array Struct and displaying in List 【发布时间】:2022-01-17 01:19:33 【问题描述】:我正在尝试显示嵌套数组/结构中的值。这是我的结构定义:
import Foundation
// MARK: - Station
struct Station:Codable, Identifiable
let id, latitude, longitude, cp: String
let pop, adresse, ville: String
let prix: [Prix]
// MARK: - Prix
struct Prix: Codable, Identifiable
let nom, id, maj, valeur: String
这是我的代码,只是为了证明数据在那里并且可以正常工作。
List
VStack(alignment: .leading)
ForEach (data) item in
Text("id: \(item.id)")
Text("lon: \(item.longitude)")
Text("lat: \(item.latitude)")
Text("\(item.prix[0].nom): \(item.prix[0].valeur)")
Text("\(item.prix[1].nom): \(item.prix[1].valeur)")
Text("\(item.prix[2].nom): \(item.prix[2].valeur)")
Text("\(item.prix[3].nom): \(item.prix[3].valeur)")
我想使用 ForEach 来显示 [Prix] 数组中的数据,因为项目的数量是可变的。
我尝试了很多 ForEach 与 Id 的组合,但没有但无法使其工作。
谢谢
【问题讨论】:
您是否尝试过第二次ForEach
Prix
?
【参考方案1】:
尝试使用嵌套的ForEach
。
对于data
中的每个Station
,都有一个Prix
数组。您应该使用ForEach
来迭代item.prix
,这样您就不会出现索引超出范围异常(它将为item.prix
中的每个Prix
创建视图)
List
//VStack(alignment: .leading)
ForEach (data) item in
Text("id: \(item.id)")
Text("lon: \(item.longitude)")
Text("lat: \(item.latitude)")
ForEach (item.prix) prix in
Text("\(prix.nom): \(prix.valeur)")
//
【讨论】:
以上是关于SwiftUI 嵌套数组结构并在列表中显示的主要内容,如果未能解决你的问题,请参考以下文章
具有自定义数据结构的 SwiftUI 列表,每个循环都嵌套 [关闭]
如何在 SwiftUI 中使用 .fileimporter 保存音频文件并检索文件并在 SwiftUI 列表中显示它们的文件名?