我正在关注Swift 4中新的Codable协议的教程。我正在从iTunes中检索JSON。
我在符合Codable的文件(SearchResult.swift)中设置了我的数据模型:
class ResultArray: Codable {
var resultCount = 0
var results = [SearchResult]()
}
class SearchResult: Codable {
var artistName = ""
var trackName = ""
var name: String {
return trackName
}
}
在我的ViewController(SearchViewController.swift)中我解码了JSON。我不明白的是在ResultArray.self中对Self的引用。结果数组对象未在我正在进行调用的View Controller中声明。
func parse(data: Data) -> [SearchResult] {
do {
let decoder = JSONDecoder()
let result = try decoder.decode(ResultArray.self, from: data)
return result.results
} catch {
print("JSON Error: \(error)")
return []
}
}