今天在 做 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.jianshu.com/p/25240b959c96
NSURLCache详解和使用 http://www.cnblogs.com/cbw1987/p/5910624.html