即使应用重启后,URLSession缓存

时间:2018-08-02 15:57:50

标签: ios nsurlsession

我刚刚遇到的事情完全改变了我对iOS中URLSession缓存的印象。

我们遇到的终点只有一次被击中。

重新启动应用程序不会再次触碰到端点。

删除该应用程序将导致它再次命中终结点……但是只有一次。

响应的标题包含...

  

Cache-Control public,max-age = 1800

因此,它取决于缓存。通过手动告诉URLSession忽略缓存,它将再次到达端点。

在文档中,它显示了缓存策略及其作为工作流图的工作方式。

https://developer.apple.com/documentation/foundation/nsurlrequestcachepolicy/nsurlrequestuseprotocolcachepolicy

enter image description here

但是一旦应用终止,缓存的数据将存储在哪里?确定要从内存中删除该应用程序及其所有相关内容吗?

1 个答案:

答案 0 :(得分:1)

URLSession正在将URLCache用于其缓存系统。它用于所有网络资源。您可以直接访问它,也可以通过URLSessionConfiguration设置自己的URL。 URLCache的基础位置在文件系统上,而不是在内存中。虽然有一种方法可以自己管理缓存。举例来说,您的回复应在设备上加密。例子有点差,但是您明白了。 ;)

这是一篇有关如何manage cache programmatically的文章,如果您需要对缓存进行更多控制。