我有一个WKWebView
应用程序,我想清除特定的缓存时,图像上传。
当我上传一个图像时,名称保持不变,但旧图像将被新图像覆盖,如旧图像是logo.png
,新图像也将被重命名为logo.png
。但是由于缓存的存在,用户仍然会看到旧的图像。
我有下面的代码行,以清除缓存一旦图像已上传,它的工作正常,但我现在唯一的问题是,所有缓存的数据也被清除。
有没有什么方法可以清除缓存的图像上传,也许通过传递图像名称?
或者只是清除图像的缓存?
static func clearCache(){
let cacheURL = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).first!
let fileManager = FileManager.default
do {
// Get the directory contents urls (including subfolders urls)
let directoryContents = try FileManager.default.contentsOfDirectory( at: cacheURL, includingPropertiesForKeys: nil, options: [])
for file in directoryContents {
print("CACHE = ", file)
do {
try fileManager.removeItem(at: file)
}
catch let error as NSError {
debugPrint("Ooops! Something went wrong: \(error)")
}
}
} catch let error as NSError {
print(error.localizedDescription)
}
}
从循环中我得到了这个
CACHE =文件:///private/var/mobile/Containers/Data/Application/BFEB788B-9EA4 - 4921-A902 - 230869CAC814/Library/Caches/com. myapp ios。sellers/CACHE = file:///private/var/mobile/Containers/Data/Application/BFEB788B-9EA4 - 4921-A902 - 230869CAC814/Library/Caches/google-sdks-events/CACHE = file:///private/var/mobile/Containers/Data/Application/BFEB788B-9EA4 - 4921-A902 - 230869CAC814/Library/Caches/com.苹果。WebKit。WebContent/CACHE =文件:///private/var/mobile/Containers/Data/Application/BFEB788B-9EA4 - 4921-A902 - 230869CAC814/Library/Caches/WebKit/
1条答案
按热度按时间qpgpyjmq1#
在for循环中查找文件时,似乎需要找到要删除的文件。当for循环命中时删除该特定图像。现在for循环删除了directoryContents中的所有缓存。