URLCache不按请求保存CacheURLResponse(使用Alamofire)

时间:2017-03-01 07:41:14

标签: ios swift alamofire nsurlcache

我想要保留对URLCache的一些回复:

var cache: URLCache = URLCache(memoryCapacity: 4 * 1024 * 1024, diskCapacity: 10 * 1024 * 1024, diskPath: nil)    
request.response { (dataResponse) in
            guard let response = dataResponse.response,
                let data = dataResponse.data,
                let request = request.request else { return }
            let cachedResponse = CachedURLResponse(response: response, data: data, userInfo: nil, storagePolicy: .allowed)
            print(cachedResponse)
            self.cache.storeCachedResponse(cachedResponse, for: request)
            print(self.cache.cachedResponse(for: request))

        }

但输出为零:

  

NSCachedURLResponse:0x6000000053e0

     

然而,缓存使用内存的大小正在增加。

我尝试创建自己的缓存或使用 URLCache.shared 实例

但是回复总是 nil

此外,我尝试使用URLCache的另一种方法,为任务保存CachedResponse,并且仅在任务处于运行状态但不在暂停状态时保存它:

cache.storeCachedResponse(cachedResponse, for: task)

我真的无法理解,这个课程里面发生了什么。

P.S。我已经阅读了所有关于URLCache的文章,例如:http://nshipster.com/nsurlcache/ https://blackpixel.com/writing/2012/05/caching-and-nsurlconnection.html

0 个答案:

没有答案