【发布时间】:2018-09-25 06:25:36
【问题描述】:
由于 NSCache 已更改为泛型类型 NSCache 现在这是我正在执行的代码 但是,控制台正在打印-“在图像缓存之后”和调度主队列CustomImageView,但从缓存执行的图像没有显示在那里!也许它没有存储在我正在创建的缓存中!有什么帮助吗?将不胜感激
let imageCache = NSCache<AnyObject, AnyObject>()
类 CustomImageView: UIImageView { var imageURLString : 字符串?
func loadImageUsingURlString(urlString: String)
{
imageURLString = urlString
let url = URL(string: urlString)
image = nil
if let imageFromCache = imageCache.object(forKey: urlString as AnyObject ) as? UIImage
{
self.image = imageFromCache
print("Image From Cache Executed")
return
}
URLSession.shared.dataTask(with: url!, completionHandler:
{
(data, response, error) in
if error != nil
{
print(error ?? "loadImageUsingURlString | Class : Helpers -> CustomImageView")
return
}
DispatchQueue.main.async
{
let imageToCache = UIImage(data: data!)
print("After Image To Cache")
if self.imageURLString == urlString
{
print("Dispatch Main Queue CustomImageView[![enter image description here][1]][1]")
self.image = imageToCache
}
else
{
imageCache.setObject(imageToCache!, forKey: urlString as AnyObject)
}
}
}).resume()
}
}
【问题讨论】:
标签: ios swift xcode caching networking