关于Alamofire缓存机制的分享

来源:互联网 发布:wifi自动切换软件 编辑:程序博客网 时间:2024/05/19 17:47

Alamofire是IOS的一个swift开源项目.是由之前Object-C的AFNetworing的作者在Swift出来以后,根据同样的需求编写的.简单易用.关于它的介绍我这里就不再赘述了.因为网上已经有很多的前辈对它进行过介绍了.大家如果还有疑问的可以去参考以下博文:http://www.th7.cn/Program/IOS/201603/771695.shtmlhttp://www.cocoachina.com/ios/20141202/10390.html

导入的方式有很多,比如可以直接导入,或者是使用pod等工具导入.比较建议大家使用pod,简单方便,更新啥的一条语句就可以搞定了.
     其实笔者使用Alamofire的时候,主要是项目需要用到http下载一些文档啥的,懒得再自己去编写库,就直接使用Alamofire.而这个库也没让笔者失望.功能很快就实现了.但是当笔者从服务器改变下载文件的内容之后,发现问题来了.无论笔者怎么去修改,下载的文件都是第一次下载的时候的那个文件.这个让笔者百般困扰.笔者只是个刚刚入门的菜鸟程序猿.于是带着百般疑惑,笔者使用android进行了文件下载.发现问题来了.android一切正常.这个时候笔者就想,这个现象跟浏览器有时候没有清除缓存的时候,访问同一个网络文件的话,他的内容不会马上更新的到最新的内容.而是会显示上面一版未更改之前的时候的内容.于是笔者尝试查找Alamofire缓存的相关内容.好家伙,还真有,在这篇博文当中http://www.cocoachina.com/ios/20160302/15493.html该博主提到过Alamofire通过NSURLCache处理缓存来阻止不必要的访问请求。就是假如你的访问的URL是一样的时候,它不会再次访问服务器去获取数据,而是会直接从缓存当中去获取对应的数据直接返回.确实这对于减少系统资源的浪费有很大的优化.但是在一些情况下其实也是未必合适的.比如笔者这里经常需要改变同一连接下文档内容的情况.那么Alamofire中去哪里设置呢.当然是从Alamofire的源码中去进行修改啦.当然也可能有其他方法,只是笔者知识有限所以没有发现,毕竟笔者现在也是刚刚接触IOS的东西.Alamofire更是只是接触了几天的时间.这里跟大家分享下如何设置Alamofire的缓存设定.在Alamofire当中有一个Manager的公共类.找到对应的Manager对像sharedInstance,定义过程中有个NSURLSessionConfiguration类的变量configuration,大家可以command+左键,进去看看当中的定义,有一个对应于NSURLCache的对象,对其进行设置缓存方式即可.具体的代码这里就不做赘述了,相信聪明的读者查看其源码应该可以找到.
     正如前面所说,笔者只是个刚刚入门的菜鸟,假如有说错的地方,也请各位及时提出,笔者好及时进行修改,免得误人子弟.如有疑问,欢迎大家发邮件给笔者,大家互相交流交流.笔者邮箱790707677@qq.com


0 0
原创粉丝点击