Сбой приложения при попытке получить URL изображения в виде строки

У меня есть эта функция, которая делает запрос на API:

Alamofire.request(URL).responseObject{ (response: DataResponse<Movie>) in
        print("|MovieController| Response is: \(response)")

        let movie = response.result.value

        if let posterURL = movie?.posterURL {
            print("Poster URL: \(posterURL)")

            let imgStg: String = posterURL
            print("-------> Image String: \(imgStg)")


        }
}

Я действительно печатаю на своей консоли posterURL правильно, но приложение вылетает, когда я пытаюсь разрешить imgStg: String = posterURL.

Сначала я пытался сделать это:

let imgStg: String = movie!.posterURL!
let imgURL: URL? = URL(string: imgStg) //Error here: Cannot call value of non-function type 'String'
let imgSrc = ImageResource(downloadURL: imgURL!, cacheKey: imgStg)

Но xcode показывал эту ошибку. Поэтому я попытался увидеть, что я получаю в "imgStg", и сбой приложения при выполнении этой строки. Это почему? Как я могу получить это право?

PS: моя конечная цель - кэшировать изображение с помощью KingFisher:

posterImageView.kf.setImage(with: imgSrc)

Ошибка: ошибка - приложение упало


Обновить

Ошибка: проблема с URL


Обновление 2: Попытка ввода с нуля, и вот варианты: введите описание изображения здесь

2 ответа

Решение

Ошибка, сообщающая, что вы звоните String вместо метода. Как я вижу, вы передаете URL (не рекомендуется иметь то же имя), что и параметр в запросе, поэтому он запутывается и выдает ошибку. Попробуйте изменить имя с URL на requestURL или что-то еще.

Заменить это:

Alamofire.request(URL).responseObject { (response: DataResponse<Movie>)

с:

Alamofire.request(requestURL).responseObject { (response: DataResponse<Movie>)

и определенно, где вы объявили URL изменить в этом месте тоже с requestURL,

Ваше изображение фактически показывает точку останова (а не ошибку времени выполнения, как вы себе представляли).

Чтобы отключить его, просто нажмите на строку слева. Чтобы отключить все точки останова, используйте команду + Y.

Точки останова. Точка останова - это просто принудительная остановка на данной строке исходного кода. Как таковая, она вообще не связана с конкретной ошибкой во время сборки или во время выполнения.

Другие вопросы по тегам