首先定义 三个类型 进行数据 之间的 操作
var jsonDic:NSDictionary = [:]
var arr = [String]()
var gmArr:NSMutableArray = []
下面是具体实现 两种表格样式(demo)
var tbv:UITableView?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let path = Bundle.main.path(forResource: "discover", ofType: "json")
let url = URL(fileURLWithPath: path!)
// 带throws的方法需要抛异常
do {
let data = try Data(contentsOf: url)
let jsonData:Any = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.mutableContainers)
jsonDic = jsonData as! NSDictionary
// print(jsonDic)
// arr = (jsonDic.allKeys as NSArray) as! [String]
arr = ["group1","group2","group3","group4"];
for k in arr {
let gm:GroupModel = GroupModel(title:k, arr: jsonDic.object(forKey: k) as! NSMutableArray)
print(gm.arr)
let carr:NSMutableArray = []
for j in gm.arr{
let i:NSDictionary = j as! NSDictionary
let cm = CellModel(img:i.object(forKey: "img") as! String, title: i.object(forKey: "title") as! String, detail: i.object(forKey: "detailtitle") as! String, img2: i.object(forKey: "img2") as! String, bool: i.object(forKey: "bool") as! String, type: i.object(forKey: "type") as! String)
// print(cm.img)
carr.add(cm)
}
gm.arr.removeAllObjects()
// print("----\(gm.arr)")
gm.arr = carr
// print("----\(gm.arr)")
let str:CellModel = gm.arr[0] as! CellModel
// print("----\(str.img)")
gmArr.add(gm)
}
// print("====\(gmArr)")
self.tbv?.reloadData()
} catch let error as Error? {
print("读取本地数据出现错误!",error!)
}
tbv = UITableView(frame: self.view.frame, style: .grouped)
tbv?.delegate = self
tbv?.dataSource = self
tbv?.register(UINib(nibName: "FirstCell", bundle: nil), forCellReuseIdentifier: "fcell")
tbv?.register(UINib(nibName: "SecondCell", bundle: nil), forCellReuseIdentifier: "scell")
view?.addSubview(tbv!)
}```