iOS开发之清除Alamofire缓存

iOS开发之清除Alamofire缓存

最近做项目用到了Alamofire第三方库,Alamofire这个库是大名鼎鼎AFNetworking的swift版本,使用的过程中遇到一些问题,在这里和大家分享一下,如果你遇到和我一样的问题,希望能够帮助到你。废话不多说,开始吧!

我使用Alamofire的时候遇到了两种情况

情况一: 我用Alamofire获取一个放在云端的json文件的内容,测试的时候发现,就算是断网了,app依然能够获取到json文件的内容。

情况二:我更新了云端的json文件,已经确定通过url能够下载到新的json文件,但是使用app获取到的还是旧版json文件的内容。

综合上面两种情况,可以推算,可能是Alamofire在本地缓存了json文件,像网页机制一样,有缓存就不会再重新请求数据。上网查了一下资料,果不其然!原来Alamofire为了保证访问速度默认先从缓存获取数据,通过NSURLCache处理缓存阻止不必要的访问,也就是说如果你多次访问的URL都一样的话,它就不会重新请求数据,而是从本地的缓存中获取数据。知道问题所在就好办了,我有两种方法可以避免Alamofire从缓存获取数据。

方法一:删除app的url缓存

代码:

// 清理缓存URLCache.shared.removeAllCachedResponses()

方法二:设置Alamofire的requestCachePolicy为reloadIgnoringLocalCacheData(推荐

代码:

// 忽略本地缓存,重新获取,防止没更新json文件Alamofire.SessionManager.default.session.configuration.requestCachePolicy = .reloadIgnoringLocalCacheData

这两种方法在swift 3.0都可以用,将代码放到获取json文件数据前面就可以了!

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部