【发布时间】:2020-09-07 19:53:33
【问题描述】:
我仍在学习 swift,但我一直坚持从嵌套的 json 响应创建列表。并且不知道如何实现这一点。
基本上我有包含类别数组的 json,每个类别都有升降机数组。我想要实现的是为每个类别创建电梯列表。
使用此代码在列表视图中的特定类别下获得升降机没有问题:
List(data.jsonData.categories[categoryId].lifts) { lift in
但不知道如何获取列表中所有类别的所有电梯。我想在 List 上方创建 ForEach 并将索引传递给 [categoryID] 但我收到一个错误,即 ForEach 无法在 View 中使用。
这是我的 JSON 结构:
// MARK: - Lifts API List
struct liftsAPIList: Codable {
let categories: [Category]
}
// MARK: - Category
struct Category: Codable, Identifiable {
let id: Int
let data: [CategoryLangauge]
let lifts: [Lift]
enum CodingKeys: String, CodingKey {
case id = "ID"
case data, lifts
}
}
// MARK: - CategoryLangauge
struct CategoryLangauge: Codable {
let en, fr: [LangaugeCategory]
}
// MARK: - LangaugeCategory
struct LangaugeCategory: Codable {
let title: String
}
// MARK: - Lift
struct Lift: Codable, Identifiable {
let id: Int
let data: [LiftLanguage]
enum CodingKeys: String, CodingKey {
case id = "ID"
case data
}
}
// MARK: - LiftLanguage
struct LiftLanguage: Codable {
let en, fr: [LangaugeLift]
}
// MARK: - LangaugeLift
struct LangaugeLift: Codable {
let code, info, photoId, title: String
}
更新:
我已经弄清楚了列表中嵌套的 forEach。不明白为什么在 List 里面我可以使用 ForEach 但在外面我不能
【问题讨论】:
标签: ios swift listview swift5 xcode11