我想要保留对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