【发布时间】:2019-01-10 20:07:18
【问题描述】:
我一直在尝试将异步加载添加到我一直在从事的项目中。我一直在处理另一个 StackOverFlow 问题中的一些代码。
我添加了关注扩展
extension UIImageView {
public func imageFromServerURL(urlString: String, defaultImage : String?) {
if let di = defaultImage {
self.image = UIImage(named: di)
}
URLSession.shared.dataTask(with: NSURL(string: urlString)! as URL, completionHandler: { (data, response, error) -> Void in
if error != nil {
print(error ?? "error")
return
}
DispatchQueue.main.async(execute: { () -> Void in
let image = UIImage(data: data!)
self.image = image
})
}).resume()
}
}
我正在尝试这样调用方法
posterImageURL = UIImageView.imageFromServerURL("http://image.tmdb.org/t/p/w185/" + posterImageFilename)
我收到以下错误
实例成员“imageFromServerURL”不能用于类型“UIImageView”;您的意思是改用这种类型的值吗?
我是 swift 新手。在我看来,它根本没有阅读扩展名。如果不调用该方法,代码本身就可以正确构建。
扩展位于我的导入语句的正下方,因为当我将它放在类中时,我收到了错误
声明仅在文件范围内有效
【问题讨论】:
-
在它使用 Cashing image 的每个项目中使用这个函数 stackoverflow.com/a/51746517/10150796
标签: ios swift asynchronous swift3 uiimageview