代码拉取完成,页面将自动刷新
对Alamofire与Cache的封装实现对网络数据的缓存,可以存储JSON,String,Data.
注意: 如果你的参数中带有时间戳、token等变化的参数,这些参数需要写在dynamicParams
参数中,避免无法读取缓存
func request(
_ url: String,
method: HTTPMethod = .get,
params: Parameters? = nil,
dynamicParams: Parameters? = nil,
encoding: ParameterEncoding = URLEncoding.default,
headers: HTTPHeaders? = nil)
-> RequestTaskManager
.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)->())
1.pod 'DaisyNet'
2.pod install / pod update
DaisyNet is released under the MIT license. See LICENSE for details.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型