gpt4 book ai didi

ios - 如何使特定 URL 的 iOS 缓存失效?

转载 作者:可可西里 更新时间:2023-11-01 03:43:26 25 4
gpt4 key购买 nike

使用 NSURLSession 的默认缓存,如何使特定 URL 的缓存失效?

我注意到 NSURLCacheremoveCachedResponseForRequest: 方法,但它需要一个 NSURLRequest 对象,我没有原始请求.我是否需要在创建它们时存储它们,以便我可以将它们传回 removeCachedResponseForRequest:,或者我是否可以使用适当的 URL 创建一个新的,然后将用作等效的目的,甚至如果它没有与原始文件相同的 header 字段和其他属性?

最佳答案

如果您想更进一步,您可以为要强制重新加载的 url 请求重置缓存的响应。执行以下操作:

let newResponse = NSHTTPURLResponse(URL: urlrequest.URL!, statusCode: 200, HTTPVersion: "1.1", headerFields: ["Cache-Control":"max-age=0"])
let cachedResponse = NSCachedURLResponse(response: newResponse!, data: NSData())
NSURLCache.sharedURLCache().storeCachedResponse(cachedResponse, forRequest: urlrequest)

由于响应的缓存控制 header 的最大年龄为 0(强制),因此当您执行此请求时,将永远不会返回响应。

您的答案适用于强制执行单个请求,但如果您希望有两个版本的请求,一个强制请求,另一个依赖缓存的响应,则需要在强制请求后删除缓存的请求。

关于ios - 如何使特定 URL 的 iOS 缓存失效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24491969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com