|
@@ -10,12 +10,12 @@ import Kingfisher
|
|
|
public class TSImageStoreTool {
|
|
|
|
|
|
public static func retrieveImageInMemoryCache(urlString: String) -> UIImage? {
|
|
|
- return ImageCache.default.retrieveImageInMemoryCache(forKey: urlString)
|
|
|
+ return KingfisherManager.shared.cache.retrieveImageInMemoryCache(forKey: urlString)
|
|
|
}
|
|
|
|
|
|
public static func storeImage(image:UIImage,urlString: String){
|
|
|
if let url = URL(string: urlString){
|
|
|
- ImageCache.default.store(image, forKey: url.cacheKey)
|
|
|
+ KingfisherManager.shared.cache.store(image, forKey: url.cacheKey)
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -26,7 +26,7 @@ public class TSImageStoreTool {
|
|
|
}
|
|
|
|
|
|
if let url = URL(string: urlString){
|
|
|
- ImageCache.default.removeImage(forKey: url.cacheKey)
|
|
|
+ KingfisherManager.shared.cache.removeImage(forKey: url.cacheKey)
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -49,18 +49,18 @@ public class TSImageStoreTool {
|
|
|
let cacheKey = url.cacheKey
|
|
|
|
|
|
// 1. 首先尝试从内存缓存获取
|
|
|
- if let memoryImage = ImageCache.default.retrieveImageInMemoryCache(forKey: cacheKey) {
|
|
|
+ if let memoryImage = KingfisherManager.shared.cache.retrieveImageInMemoryCache(forKey: cacheKey) {
|
|
|
completion(memoryImage)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
// 2. 然后尝试从磁盘缓存获取
|
|
|
- ImageCache.default.retrieveImage(forKey: cacheKey) { result in
|
|
|
+ KingfisherManager.shared.cache.retrieveImage(forKey: cacheKey) { result in
|
|
|
switch result {
|
|
|
case .success(let value):
|
|
|
if let diskImage = value.image {
|
|
|
// 将从磁盘获取的图片存入内存缓存
|
|
|
- ImageCache.default.store(diskImage, forKey: cacheKey, toDisk: false)
|
|
|
+ KingfisherManager.shared.cache.store(diskImage, forKey: cacheKey, toDisk: false)
|
|
|
DispatchQueue.main.async {
|
|
|
completion(diskImage)
|
|
|
}
|
|
@@ -105,7 +105,47 @@ public class TSImageStoreTool {
|
|
|
switch result {
|
|
|
case .success(let value):
|
|
|
// 将下载的图片存入缓存
|
|
|
- ImageCache.default.store(value.image, forKey: cacheKey)
|
|
|
+ KingfisherManager.shared.cache.store(value.image, forKey: cacheKey)
|
|
|
+ completion(value.image)
|
|
|
+ case .failure:
|
|
|
+ completion(nil)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /// 从 KF的换从中取图片
|
|
|
+ /// - Parameters:
|
|
|
+ /// - urlString: url
|
|
|
+ /// - progressHandler: progressHandler
|
|
|
+ /// - completion: completion
|
|
|
+ public static func retrieveImage(
|
|
|
+ urlString: String,
|
|
|
+ progressHandler: ((Float) -> Void)? = nil,
|
|
|
+ completion: @escaping (UIImage?) -> Void
|
|
|
+ ) {
|
|
|
+
|
|
|
+ guard let url = URL(string: urlString) else {
|
|
|
+ completion(nil)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ KingfisherManager.shared.retrieveImage(
|
|
|
+ with: url,
|
|
|
+ options: [],
|
|
|
+ progressBlock: { receivedSize, totalSize in
|
|
|
+ let progress = Float(receivedSize) / Float(totalSize)
|
|
|
+ DispatchQueue.main.async {
|
|
|
+ progressHandler?(progress)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ completionHandler: { result in
|
|
|
+ DispatchQueue.main.async {
|
|
|
+ switch result {
|
|
|
+ case .success(let value):
|
|
|
completion(value.image)
|
|
|
case .failure:
|
|
|
completion(nil)
|