[英]Swift 4.1 Decodable Can't decode nested array with nestedContainer
[英]Swift decodable can't access nested data in array
我收到一個嚴重錯誤,陳述以下內容。 我已經嘗試了所有方法,但似乎無法訪問Movie結構,因為它說父“類型”沒有名為“數據”的成員,即使它顯然也是如此。
“類型'[Type?]'的值沒有成員'data'”
模型
struct SearchData: Decodable {
let data: [Type?]
}
struct Type: Decodable {
let data: [Movie?]
}
struct Movie: Decodable {
let title: String?
}
CONTROLLER
fileprivate var searchResults = [Movie?]()
func fetchTitles() {
let urlString = "https://www.what-song.com/api/search?limit=10&field=america"
guard let url = URL(string: urlString) else { return }
URLSession.shared.dataTask(with: url) { (data, response, err) in
// if error occurs
if let err = err {
print("Failed to fetch titles", err)
return
}
// if success
guard let data = data else { return }
do {
let searchResult = try JSONDecoder().decode(SearchData.self, from: data)
self.searchResults = searchResult.data.data
print(searchResult)
} catch {
print("Failed to decode JSON:", error)
}
}.resume()
}
嘗試這個 :
var movieTitles = [String]()
for type in searchResult.data {
for movie in type.data {
guard let title = movie.title else { return }
print(title)
movieTitles.append(title)
}
}
我想你在這里犯了一個小錯誤
searchResult.data
將返回一個數組
類型
您還需要解析該數組,像這樣
searchResults = (searchResult.data[0]?.data)!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.