NSURLRequestReturnCacheDataElseLoad
キャッシュポリシーを使用してWKWebviewにウェブページを読み込みます。 サーバが私に明示的に指示しない限り、キャッシュをクリアする必要はありません。しかし、サーバからの指示があったらキャッシュのクリアに問題があります。それ。iOSでキャッシュディレクトリを消去するためのベストプラクティスは何ですか?
NSURLSessionかのUIWebView .Iと正常に動作していない周りの NSURLCacheについての循環いくつかの苦情がありますが解答や記事のほとんどは、それは私のためのいずれかのiOS 8.4または9.3シミュレータで動作させることができなかった、というremoveAllCachedResponses
作品を示唆。
私は次のコードを使用して、キャッシュディレクトリ内のすべてのファイルをプログラムでクリアしました。 WKWebview で使用するウェブサイトのキャッシュファイルは、Application/Cache/bundleidentifierにあります。しかし、私はすべてのファイルを削除しようとすると、私はコードを実行すると、私は/スナップショット を削除しようとしているエラーを取得します。これは私が改ざんすべきではないキャッシュディレクトリ内のいくつかの他のファイルですか? 私はSDWebImageキャッシュを知っていますが、このディレクトリにはその他のファイルはほとんどありません。しかし、私はSDWebImageキャッシュをクリアする必要があります。ここで
私はキャッシュディレクトリをクリアするために使用されるコードです:
public func clearCache(){
let cacheURL = NSFileManager.defaultManager().URLsForDirectory(.CachesDirectory, inDomains: .UserDomainMask).first!
let fileManager = NSFileManager.defaultManager()
do {
// Get the directory contents urls (including subfolders urls)
let directoryContents = try NSFileManager.defaultManager().contentsOfDirectoryAtURL(cacheURL, includingPropertiesForKeys: nil, options: [])
for file in directoryContents {
do {
try fileManager.removeItemAtURL(file)
}
catch let error as NSError {
debugPrint("Ooops! Something went wrong: \(error)")
}
}
} catch let error as NSError {
print(error.localizedDescription)
}
}
さて、これは良い習慣ですか?同じことを達成するために欠けている明らかな方法はありますか?