У меня проблемы с получением определенного значения при вызове 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"
}
}
И я пытаюсь получить imageUrl
член Multimedia
структуры. Когда я делаю запрос данных, я заполняю массив var storyData = [Results]()
object.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
?