【问题标题】:Does CachedURLResponse persists in between app launches?CachedURLResponse 在应用程序启动之间是否持续存在?
【发布时间】:2020-05-06 13:44:12
【问题描述】:

下面来自Apple documentation 的示例显示了如何为UrlSession 手动创建CachedURLResponse

其中一个参数是storagePolicy(在示例中设置为.allowedInMemoryOnly)。

如果将此类参数设置为.allowed(而不是.allowedInMemoryOnly,则缓存应存储到硬盘。这是否意味着它会在应用启动之间保持不变?

func urlSession(_ session: URLSession, dataTask: URLSessionDataTask,
                willCacheResponse proposedResponse: CachedURLResponse,
                completionHandler: @escaping (CachedURLResponse?) -> Void) {
    if proposedResponse.response.url?.scheme == "https" {
        let updatedResponse = CachedURLResponse(response: proposedResponse.response,
                                                data: proposedResponse.data,
                                                userInfo: proposedResponse.userInfo,
                                                storagePolicy: .allowedInMemoryOnly)
        completionHandler(updatedResponse)
    } else {
        completionHandler(proposedResponse)
    }
}

谢谢

【问题讨论】:

    标签: ios swift caching


    【解决方案1】:

    URLCache 类实现对 URL 加载响应的缓存 请求,通过将 NSURLRequest 对象映射到 CachedURLResponse 对象。它提供了一个复合的内存和磁盘缓存,并让 您可以操纵内存和磁盘部分的大小。 您还可以控制缓存数据永久存储的路径。

    • 允许大小写 允许无限制地存储在 URLCache 中。
    • case allowedInMemoryOnly 允许在 URLCache 中存储;然而 存储应仅限于内存。

    是的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-02
      • 1970-01-01
      • 2010-10-08
      • 2014-05-21
      • 2019-09-25
      • 1970-01-01
      • 2022-06-10
      相关资源
      最近更新 更多