Alamofire-NSURLCache无法正常工作? [英] Alamofire - NSURLCache is not working?
本文介绍了Alamofire-NSURLCache无法正常工作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我将缓存设置如下
var cacheSizeMemory = 20 * 1024 * 1024
var cacheSizeDisk = 100 * 1024 * 1024
var sharedCache = NSURLCache(memoryCapacity: cacheSizeMemory, diskCapacity: cacheSizeDisk, diskPath: "SOME_PATH")
NSURLCache.setSharedURLCache(sharedCache)
使用缓存策略创建请求
var request = NSMutableURLRequest(URL: NSURL(string: "\(baseUrl!)\(path)")!, cachePolicy: .ReturnCacheDataElseLoad, timeoutInterval: timeout)
通过以下 Cache-Control
private,max-age = 60 $发出请求并获得响应c $ c>
然后尝试检查缓存
var cachedResponse = NSURLCache.sharedURLCache().cachedResponseForRequest(urlRequest)
值是nil
有什么想法吗?
推荐答案
我最终手动添加了 Ca che-Control
作为我的请求标头中的 private
,现在可以使用了。甚至不需要手动检查缓存,Alamofire会为您完成
I ended up manually adding Cache-Control
as private
in the header of my request and it now works. Don't even need to manually check the cache, Alamofire does it for you
let cachePolicy: NSURLRequestCachePolicy = isReachable() ? .ReloadIgnoringLocalCacheData : .ReturnCacheDataElseLoad
var request = NSMutableURLRequest(URL: NSURL(string: "\(baseUrl!)\(path)")!, cachePolicy: cachePolicy, timeoutInterval: timeout)
request.addValue("private", forHTTPHeaderField: "Cache-Control")
var alamoRequest = Manager.sharedInstance.request(urlRequest)
这篇关于Alamofire-NSURLCache无法正常工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文