Cod*_*oop 0 caching firebase swift
我似乎不明白为什么这不起作用。我正在尝试获取缓存来存储 Firebase 中的用户图像,以便我可以将它们存储在用户的手机上。这是我的代码。
import UIKit
let imageCache = NSCache<AnyObject, AnyObject>()
extension UIImageView {
func loadImageUsingCacheWithUrlString(urlString: String) {
let url = NSURL(string: urlString)
URLSession.shared.dataTask(with: url! as URL, completionHandler: { (data, response, error) in
if error != nil {
print(error!)
return
}
DispatchQueue.main.async {
if let downloadedImage = UIImage(data: data!) {
imageCache.setObject(downloadedImage, forKey: urlString)
self.image = downloadedImage
}
}
}).resume()
}
}
Run Code Online (Sandbox Code Playgroud)
我不断收到错误:无法使用类型为“(UIImage, forKey: String)”的参数列表调用“setObject”
我该如何摆脱这个错误?
修改 的参数列表NSCache。此外,修复了从缓存加载图像(如果有可用逻辑)的问题。这是代码:
let imageCache = NSCache<NSString, UIImage>()
extension UIImageView {
func loadImageUsingCacheWithUrlString(urlString: String) {
if let image = imageCache.object(forKey: urlString as NSString) {
self.image = image
return
}
URLSession.shared.dataTask(with: URL(string: urlString)!, completionHandler: { (data, response, error) in
if error != nil {
print(error!)
return
}
DispatchQueue.main.async {
if let downloadedImage = UIImage(data: data!) {
imageCache.setObject(downloadedImage, forKey: urlString as NSString)
self.image = downloadedImage
}
}
}).resume()
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
589 次 |
| 最近记录: |