今天在 做 app的 清除緩存功能, 大概想了下, 數據庫 文件 緩存 都是 string , 沒多大,就沒必要 清空了, 需要 清除的 其實就是 RN 的 網絡圖片緩存; 接下來就得 知道 RN? IOS 的圖片緩存策略了, 網上搜了下, 又問了幾個大神, 也看了下 源碼,從 RCTImageLoader 類的 loadImageOrDataWithURLRequest 可看到,?
_URLCache= [[NSURLCachealloc]initWithMemoryCapacity:5*1024*1024// 5MB
diskCapacity:200*1024*1024// 200MB
diskPath:@"React/RCTImageDownloader"];
RN IOS 的 網絡圖片 內存緩存最多 5M, 硬盤 緩存最多 200M, 用? 的 系統的 NSURLCache 緩存策略, NSURLCache 會自動在本地 /Library/Caches/com.*.* 目錄下生成緩存文件。(image 就在 fsCacheData 目錄下),比如 我的路徑就是?
/Users/Ebates/Library/Developer/CoreSimulator/Devices/EB3BA498-9A99-4620-A22F-FAEF1D19962B/data/Containers/Data/Application/776221EB-F8CA-42B2-A2EC-75E1A3F685E6/Library/Caches/com.ChildhoodFood.mobileApp /fsCachedData ?
當使用 NSURL 相關的框架,使用到緩存的時候,系統會在 Caches目錄下創建一個 跟 bundle identifer 同名的一個文件夾,以及里面的 Cache.db、Cache.db-shm、Cache.db-wal
三個文件和文件夾 fsCacheData/
·fsCacheData/ 文件夾會在有需要緩存數據到文件的數據才會有,如緩存圖片
可以使用 [[NSURLCache sharedURLCache] removeAllCachedResponses] 清理這里所有的緩存數據
解決這個問題的過程中 翻到了 這幾篇文章,很有幫助,分享給大家
RN的http圖片緩存方案 http://awhisper.github.io/2016/07/17/Talk-about-ReactNative-Image-Component/
RN app 清除緩存的第三方庫? https://github.com/reactnativecn/react-native-http-cache
AFNetworking 3.0 image緩存? http://www.lxweimin.com/p/25240b959c96
NSURLCache詳解和使用? ? http://www.cnblogs.com/cbw1987/p/5910624.html? ?