每当我尝试使用cod-able解析json时,我总是会遇到表视图或集合视图没有显示数据的问题。以下面的代码为例;我连接到newsAPI以在表视图中显示"title“字段。我在request函数中设置了我的数据模型和网络代码。当运行代码时,它显示没有值;我如何解决这个问题?项目链接:https://github.com/lexypaul13/Nasa
struct ArticleData:Codable{
var status: String
var totalResults: String
var article: [Article]
}
struct Article: Codable {
var title:String?
var unwrappeTitle:String{
return "\(title ?? "No value")"
}
}
func request(){
let website = "https://newsapi.org/v2/everything?q=tesla&from=2021-05-21&sortBy=publishedAt&apiKey=d32071cd286c4f6b9c689527fc195b03"
if let url = URL.init(string: website){
let task = URLSession.shared.dataTask(with: url, completionHandler: { (data, response, error) in
if let data = data{
do {
let parsedJsons = try? JSONDecoder().decode(ArticleData.self, from: data )
DispatchQueue.main.async {
self.information = parsedJsons?.article ?? []
self.tableView.reloadData()
}
}catch{
print(error)
}
}
})
task.resume()
}
}发布于 2021-06-22 06:08:24
您应该将try?更改为try,以便在出现解码错误时调用catch块,并获得一些有用的输出。
完成上述操作并输出解码错误后,您应该看到ArticleData结构有两个问题,即totalResults应该是Int而不是String,article应该重命名为articles
struct ArticleData: Codable{
var status: String
var totalResults: Int
var articles: [Article]
}https://stackoverflow.com/questions/68075109
复制相似问题