let url = URL(string: "https://api.letsbuildthatapp.com/jsondecodable/courses")
URLSession.shared.dataTask(with: url!) { (data, response, err) in
guard let data = data else { return }
do {
let appData = try JSONDecoder().decode([App].self, from: data)
print(appData)
} catch let err {
print("Err", err)
}
}.resume()
这就是我解析 json 的方式。但我想将那些已解析的数据添加到我的数组中以使用它来填充 mytableview。
struct App: Decodable {
var id: Int
var name: String
}
var apps = [App]()
这是我在控制台打印 appData 后得到的。
[CustomTableView.App(id: 1, name: "Instagram Firebase"), CustomTableView.App(id: 2, name: "Podcasts Course"), CustomTableView.App(id: 3, name: "Intermediate Training Core Data"), CustomTableView.App(id: 4, name: "Kindle Basic Training")]
你能帮我理解这个概念吗,因为我是 iOS 的新手,为了找到答案进行了很多搜索。非常感谢你
这是我的全部代码
最佳答案
你需要这样做
DispatchQueue.main.async {
self.apps = appData
self.tableView.reloadData()
}
或
DispatchQueue.main.async {
self.apps.append(contentsOf:appData)
self.tableView.reloadData()
}
关于arrays - 如何快速将 json 附加到我的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51362022/