文章来源:淘论文网   发布者: 毕业设计   浏览量: 20



还可以点击去查询以下关键词:
[Alamofire]    [Cache]    [封装]    [毕业]    [网络]    [缓存]    [下载]    [Alamofire与Cache封装毕业实现网络缓存、下载]   

项目介绍:

对Alamofire与Cache的封装实现对网络数据的缓存,可以存储JSON、String、Data,接口简单明了.

封装Alamofire下载,使用更方便.

如有问题,欢迎提出,不足之处,欢迎纠正,欢迎star ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨

Github: https://github.com/MQZHot/DaisyNet

1. 请求+缓存

缓存数据只需要调用.cache(true),不调用或者.cache(false)则不缓存

调用responseCacheAndString可以先读取缓存数据,再读取网络数据

通过isCacheData属性可以区分缓存数据还是网络数据

DaisyNet.request(url, params: params).cache(true).responseCacheAndJson { value in switch value.result { case .success(let json): if value.isCacheData { print('我是缓存的') } else { print('我是网络的') } case .failure(let error): print(error) } }

你也可以分别读取缓存数据和网络数据,如下代码

调用cacheJson方法获取缓存数据,调用responseJson获取网络数据

DaisyNet.request(url, params: params).cache(true).cacheJson { json in print('我是缓存的') }.responseJson { response in print('我是网络的') }

如果你不需要缓存,可以直接调用responseJson方法

DaisyNet.request(url).responseString { response in switch response { case .success(let value): print(value) case .failure(let error): print(error) } }

同理,如果你要缓存Data或者String,与JSON是相似的

/// 先读取缓存,再读取网络数据 DaisyNet.request(url).cache(true).responseCacheAndString { value in } DaisyNet.request(url).cache(true).responseCacheAndData { value in }/// 分别获取缓存和网络数据 DaisyNet.request(url).cache(true).cacheString { string in print('我是缓存的') }.responseString { response in print('我是网络的') }

取消请求

DaisyNet.cancel(url, params: params)

清除缓存

/// 清除所有缓存 func removeAllCache(completion: @escaping (Bool)->()) /// 根据url和params清除缓存 func removeObjectCache(_ url: String, params: [String: Any]? = nil, completion: @escaping (Bool)->())2. 下载思路:

1.下载中的任务,用url作为key添加到DownloadManager单例中

2.取消任务、删除任务以及下载失败时,将下载任务从单例中删除,保证- DownloadManager单例的downloadTasks中是正在下载的

3.暂停下载,保存已经下载的data到plist文件

DaisyNet.download(url).downloadProgress { progress in /// 下载进度 }.response { response in /// 下载完成 }

如果正在下载中退出当前界面,开题报告开题报告,再次进入时可以通过以下方法获取下载进度,并改变UI

DaisyNet.downloadProgress(url) { print($0) }?.response(completion: { _ in print('下载完成') })

获取下载状态

DaisyNet.downloadStatus(url)

获取下载百分比

DaisyNet.downloadPercent(url)

获取下载完成后文件所在位置

DDaisyNet.downloadFilePath(url)

删除某个下载

DaisyNet.downloadDelete(url)

取消某个下载

DaisyNet.downloadCancel(url)


这里还有:


还可以点击去查询:
[Alamofire]    [Cache]    [封装]    [毕业]    [网络]    [缓存]    [下载]    [Alamofire与Cache封装毕业实现网络缓存、下载]   

请扫码加微信 微信号:sj52abcd


下载地址: http://www.taolw.com/down/4017.docx
  • 上一篇:滚动的电毕业设计影列表
  • 下一篇:高仿微信图片定制浏览(第二版)