如何从第三级结构中读取变量



我知道如何访问"struct Course"变量并将它们带到tableview。我是这样做的:

var event = [Course]()
//some code left out
let courses = try JSONDecoder().decode(JsonFromWeb.self, from: data)
self.event = courses.data
//some code left out

然后在表视图中:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        guard let cell = tableView.dequeueReusableCell(withIdentifier: "eventCell") as? UserEventsTableViewCell else { return UITableViewCell() }
        cell.idLabel.text = event[indexPath.row].id
        cell.nameLabel.text = event[indexPath.row].name
        return cell
    }

但是我无法弄清楚访问 Cover 变量并获取例如源值并将其添加到 tableView 的方法。就像我对课程变量所做的那样。我的结构在这里:(感谢使用我的 JSON 对此进行编码的用户 Vadian 。

struct JsonFromWeb: Codable {
    let data: [Course]
}
struct Course: Codable {
    private enum CodingKeys : String, CodingKey {
        case attendingCount = "attending_count"
        case id, name, cover
    }
    let id: String
    let name: String
    let attendingCount: Int
    let cover: Cover?
}
struct Cover : Codable {
    private enum CodingKeys : String, CodingKey {
        case offsetX = "offset_x"
        case offsetY = "offset_y"
        case source, id
    }
    let offsetX: Int
    let offsetY: Int
    let source: String
    let id: String
}

希望能找到帮助。谢谢!

很简单:

访问cover使用中的source

event[indexPath.row].cover?.source