【发布时间】:2018-11-08 17:42:54
【问题描述】:
我在进行 API 调用时无法获取特定值。结构体的设置如下:
struct Status: Decodable {
let status: String
let results: [Results]
}
struct Results: Decodable {
let title: String
let abstract: String
let url: String
let multimedia: [Multimedia]
}
struct Multimedia: Decodable {
let imageUrl: String
enum CodingKeys: String, CodingKey {
case imageUrl = "url"
}
}
我正在尝试获取Multimedia 结构的imageUrl 成员。当我发出数据请求时,我用object.results 填充数组var storyData = [Results]()。我在viewDidLoad提出数据请求:
fetchData(url: jsonURL) { (result: FetchResult<Status>) -> (Void) in
switch result {
case .success(let object): self.storyData = object.results
print("\n\nNumber of stories: \(self.storyData.count)\n\nStories: \n\n \(self.storyData)")
case .failure(let error):
print("Error decoding JSON: \n\n \(error)")
}
DispatchQueue.main.async {
self.tableView.reloadData()
}
}
现在,我正在尝试获取 imageUrl,以便可以在表格视图中显示图像,我想我会使用类似的方法在 cellForRowAt 方法中获取它
let newsStories = storyData[indexPath.row]
cell.storyImageView.cacheImage(urlString: newsStories.multimedia.imageUrl)
但是我不能这样做,我可以访问newsStories.multimedia,但不能再访问,好像multimedia 没有任何属性。
我可以通过其他方式获得imageUrl吗?
【问题讨论】: