【问题标题】:How can I append json to my array in swift如何快速将 json 附加到我的数组中
【发布时间】:2018-07-16 12:37:42
【问题描述】:
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: "播客课程"), CustomTableView.App(id: 3, name: "中级训练核心数据"), CustomTableView.App(id: 4, name: "Kindle 基础培训")]

你能帮我理解这个概念吗,因为我是 iOS 新手,为了找到答案,我进行了很多搜索。非常感谢你

这是我的全部代码

【问题讨论】:

  • apps.append(contentOf: appData) 就在print(appData) 之后?但是您可能还想执行tableViewreloadData(),并在主线程中执行此操作。
  • 你要知道json解析的基础知识就到这里了,看完你就明白了developer.apple.com/swift/blog/?id=37
  • 非常感谢您的回答。我将搜索更多以学习基础知识

标签: arrays json swift uitableview object


【解决方案1】:

你需要这样做

DispatchQueue.main.async {
    self.apps = appData
    self.tableView.reloadData()
}

DispatchQueue.main.async {
    self.apps.append(contentsOf:appData)
    self.tableView.reloadData()
}

【讨论】:

  • 非常感谢您的详细回答。我解决了问题
【解决方案2】:

添加:

self.apps = appData

就在print(appData)下方

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-20
    • 2015-11-13
    • 2023-04-07
    • 1970-01-01
    • 2016-02-03
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多