ios - Swift:将数组对象显示到tableView

标签 ios swift uitableview

我试图在 TableView 中将来自 api 响应的数组对象显示为 [[String: Any]] 这就是我的结构

class CategoriesDep: NSObject {

    var depName: String
    var depImage: String
    var subName = [subData]()

    init?(dict: [String: JSON]) {

        guard let image = dict["main_department_image"]?.imagePath, !image.isEmpty else { return nil }

        self.depImage = image
        self.depName = (dict["main_department_name"]?.string)!




    }

    struct subData {
        var dep: String
        init(dic: [String: Any]) {
            self.dep = dic["sub_department_name"] as! String

        }
    }
}

最佳答案

请检查下面的代码来解析您的 json

class CategoriesDep: NSObject {
    var depName: String
    var depImage: String
    var subName = [subData]()

    init?(dict: [String: Any]) {

        guard let image = dict["main_department_image"] as? String, !image.isEmpty else { return nil }

        self.depImage = image
        self.depName = (dict["main_department_name"] as? String)!
        subName = []
        for subDict in (dict["sub_depart"] as? [[String:Any]] ?? []){
            subName.append(subData(dic: subDict))
        }

    }

}
struct subData {
     var dep: String
     var image :String
     var id : String
     init(dic: [String: Any]) {
          self.dep = dic["sub_department_name"] as! String
          self.image = dic["sub_department_image"] as! String
          self.id = dic["sub_department_id"] as! String
     }
}

如果您想访问 CategoryDe​​p 类外部的子数据结构,则在 CategoryDe​​p 类外部声明结构

解析给定的 json Respoise,例如

       let json =  [
            [ "sub_depart" : [
                [ "sub_department_name" : "hos", "sub_department_id" : "6", "sub_department_image" : "23.jpg"
                ]
                ],
              "main_department_id" : "2",
              "main_department_name" : "main ",
              "main_department_image" : "14.jpg"
            ],
            ]
        var catDepart : [CategoriesDep] = []
        for dict in json {
            catDepart.append(CategoriesDep(dict: dict)!)
        }
        print(catDepart[0].subName[0].dep)

关于ios - Swift:将数组对象显示到tableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53404232/

相关文章:

ios - 快速读取Firebase实时数据库中的数据

objective-c - 如何将此 Swift 语法转换为 Objective-C?

ios - 删除 iOS8 中 tableHeaderView 下方的填充

objective-c - 在弹出 View 中从 tableViewController 访问父 View Controller

iphone - 有 IBOutlet 和没有 IBOutlet 有什么区别

ios - Parse 中的查询指针 (ios)

ios - JWT 'DecodeResult' 没有名为 'Success' 的成员

ios - 如何限制用户在 objective-c 中顺序选择单元格

ios - 如何将 C 文件操作更改为 Objective C?

iphone - 合并截图并生成pdf文件