0

我有这个请求 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)

错误: 错误 - 应用程序崩溃


更新

错误: 网址有问题


更新 2:尝试从头开始输入,这就是选项: 在此处输入图像描述

4

2 回答 2

1

错误说明您正在调用 aString而不是方法。正如我所看到的,您将 URL(不建议使用相同的名称)作为请求中的参数传递,因此它会变得混乱并引发错误。尝试将名称从 URL 更改为 requestURL 或其他名称。

替换这个:

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

和:

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

绝对是你URL在那个地方宣布改变的地方requestURL

于 2017-04-29T03:21:14.780 回答
1

您的图像实际上显示了一个断点(而不是您想象的运行时错误)。

要禁用它,只需单击行左边距。要禁用所有断点,请改用command+ Y

断点断点只是给定源代码行上的强制停止。因此,它根本与特定的构建时间或运行时错误无关。

于 2017-04-29T01:50:55.723 回答