@shevzoom
 dev., student at MEPhI

Как добавить загрузку изображение через uuid?

Я пытаюсь переделать загрузку Image вместо URL по UUID.
сейчас Image лежит в https://leonardo.osnova.io/<uuid>

структура, которая принимает uuid:
struct Image: Codable {
    /// тот самый uuid котоырй хочу добавить
    let uuid: UUID!
    
    enum CodingKeys: String, CodingKey {
        case uuid
    }
}


Вот я пытаюсь передать во viewModel эти данные.
private func fetchTopStories() {
        APICaller.shared.getTopStories { [weak self] json in
            switch json {
            case .success(let result):
                self?.result = result
                self?.viewModels = result.compactMap({
                    NewsTableViewCellViewModel(
                        name: $0.data?.subsite?.name ?? "unknown",
                        author: $0.data?.author?.name ?? "No name",
                        title: $0.data?.title ?? "NO TITLE",
                        subtitle: $0.data?.blocks?.first?.data.text ?? "",
                        // здесь приложение крашится
                        imageURL: URL( string: "https://leonardo.osnova.io/ + \($0.data?.blocks?[1].data.items?.first?.image.data.uuid)" ?? "noImahe load")
//                        imageURL: URL(string: $0.cover?.url ?? " :( ")
                    )
                })
                
                DispatchQueue.main.async {
                    self?.tableView.reloadData()
                }
            case .failure(let error):
                print(error)
            }
        }
    }


func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath, animated: true)
        
        let article = result[indexPath.row]
        var id = article.data?.blocks?[1].data.items?.first?.image.data.uuid!
//        var myurl = URL(string: "https://leonardo.osnova.io/" + \(id!.uuidString))

        guard let url = URL(string: "https://leonardo.osnova.io/ + \(id!.uuidString)")  else {
            return
        }   
    }


после этого приложение выдает ошибку и больше не запускается, где мб косяк?
6105c0d677c64817359690.png
  • Вопрос задан
  • 187 просмотров
Решения вопроса 1
briahas
@briahas
ObjC, Swift, Python
Подозреваю, что, скорее всего, проблема в $0.data?.blocks?[1] т.к. тут явно указано "брать второй элемент массива".

Кстати!!! А дэбаг что дает?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы