|
@@ -64,6 +64,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
|
|
|
}
|
|
|
|
|
|
func initPlatform() {
|
|
|
+ handleKingfisher()
|
|
|
TSCrashReporterTool.shared.setup()
|
|
|
TSCrashReporterTool.shared.printCrashReports()
|
|
|
TSColorConfigShared.naviMianTextColor = .white
|
|
@@ -179,56 +180,13 @@ import Kingfisher
|
|
|
extension AppDelegate {
|
|
|
|
|
|
func handleKingfisher(){
|
|
|
-
|
|
|
moveCacheSmoothly()
|
|
|
-
|
|
|
- var diskStorage = ImageCache.default.diskStorage
|
|
|
-
|
|
|
- let cache1 = ImageCache(memoryStorage: ImageCache.default.memoryStorage, diskStorage: ImageCache.default.diskStorage)
|
|
|
-
|
|
|
let cache = try! ImageCache(
|
|
|
- name: "longtorage",
|
|
|
+ name: "default",
|
|
|
cacheDirectoryURL: FileManager.default.urls(for: .documentDirectory, in: .userDomainMask ).first!
|
|
|
)
|
|
|
-
|
|
|
cache.diskStorage.config.expiration = .never // 永不过期
|
|
|
cache.diskStorage.config.sizeLimit = 0 // 无大小限制
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- // 1. 创建自定义磁盘存储配置
|
|
|
- let diskStorageConfig: DiskStorage.Config = {
|
|
|
- var config = DiskStorage.Config(
|
|
|
- name: "longtorage", // 缓存名称
|
|
|
- sizeLimit: 0, // 不限制大小
|
|
|
- directory: FileManager.default.urls(for: .documentDirectory, in: .userDomainMask ).first!
|
|
|
- )
|
|
|
- return config
|
|
|
- }()
|
|
|
-
|
|
|
- // 2. 创建内存存储配置
|
|
|
- let memoryStorageConfig: MemoryStorage.Config = {
|
|
|
- var config = MemoryStorage.Config(totalCostLimit: 100 * 1024 * 1024) // 100MB内存限制
|
|
|
- config.countLimit = 50 // 最多缓存50张图片
|
|
|
- config.expiration = .seconds(3600) // 1小时后过期
|
|
|
- return config
|
|
|
- }()
|
|
|
-
|
|
|
- // 3. 创建自定义ImageCache实例
|
|
|
- let customCache: ImageCache = {
|
|
|
- let diskStorage = try! DiskStorage(config: diskStorageConfig)
|
|
|
- let memoryStorage = MemoryStorage(config: memoryStorageConfig)
|
|
|
-
|
|
|
- return ImageCache(
|
|
|
- memoryStorage: memoryStorage,
|
|
|
- diskStorage: diskStorage
|
|
|
- )
|
|
|
- }()
|
|
|
-
|
|
|
- // 4. 设置为默认缓存
|
|
|
- ImageCache.default = customCache
|
|
|
-
|
|
|
-
|
|
|
KingfisherManager.shared.cache = cache
|
|
|
}
|
|
|
|
|
@@ -237,12 +195,17 @@ extension AppDelegate {
|
|
|
// 1. 获取旧文件路径的图片
|
|
|
let fileManager = FileManager.default
|
|
|
guard let cachesURL = fileManager.urls(for: .cachesDirectory, in: .userDomainMask).first else {
|
|
|
- dePrint("Cache Kingfisher 没有缓存,不用迁移")
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
let permanent_image_cache = "com.onevcat.Kingfisher.ImageCache.default"
|
|
|
let srcURL = cachesURL.appendingPathComponent(permanent_image_cache)
|
|
|
- guard fileManager.fileExists(atPath: srcURL.path) else { return }
|
|
|
+ guard fileManager.fileExists(atPath: srcURL.path),
|
|
|
+ TSFileManagerTool.hasContents(atPath: srcURL.path)
|
|
|
+ else {
|
|
|
+ dePrint("Cache Kingfisher 没有缓存,不用迁移")
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
//把srcURL 移动到新的 documentURL
|
|
|
guard let documentURL = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first else { return }
|