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文件数据前面就可以了!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值