为什么对象不追加到数组?

时间:2018-07-13 01:53:36

标签: ios json swift api parsing

DimensionGroup

我也尝试过使用for循环将其追加到数组中,但这也不起作用。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

我要检查的第一件事是返回的数据正确。

保护块是触发返回还是数据正常?

JSON是否能够正确解码响应?

是否填充了articles对象中的apiResults

接下来的事情是,您不打算将apiResults.articles的内容添加到列表中,而是使列表变成apiResults.articles之前的样子。

尝试以下操作并查看其运行方式:

class NetworkManager{

    // better declaration syntax
    var articleList: [Article] = []

    func downloadJsonData() {
        let jsonUrl = "https://newsapi.org/v2/everything?sources=nfl-news&apiKey=mykey"

        guard let url = URL(string: jsonUrl) else { return }

        URLSession.shared.dataTask(with: url) { data, response, err in
            //check err
            //check response status
            guard let data = data else { return }

            do{
                let apiResults = try JSONDecoder().decode(ApiResults.self, from: data)
                //article list remains empty
                //appends contents instead of assignment
                self.articleList.append(contentsOf: apiResults.articles)
            } catch let err{
                print(err)
            }
        }.resume()
    }
}