AFNetworking和缓存

3
我正在下载WMS瓦片并希望进行缓存。我正在使用包括NSURLCache的AFNetworking。服务器响应头中不包含缓存控制协议。
我询问了服务器管理员,但他对服务器端缓存控制不熟悉。目前他忙于其他工作。我需要他实现缓存控制吗?还是我可以强制NSURLCache在没有响应头信息的情况下进行缓存?
NSURLCache是否是持久的?如果是,我如何清除缓存?这些瓦片需要在每个会话中检索,不能保留。
或者,我应该创建自己的缓存?
1个回答

0

当您激活NSURLCache后,它将对基于NSUrlRequest的任何请求(如AFNetworking)起作用。一旦激活NSURLCache,您可以指定其最大大小。您还可以通过调用removeAllCachedResponses或removeCachedResponsesForRequest方法来清除缓存。如果服务器没有发送任何缓存控制信息,则缓存仍将缓存文件。如果您希望完全控制缓存,则可以创建自己的缓存。如果您想查看例程代码,请参阅https://github.com/evermeer/EVURLCache


好的,很高兴听到这个消息。我再次与服务器管理员交谈,他似乎对实现缓存控制并不感到兴奋。因此,这可能看起来非常基础,但是从NSURLCache检索的工作原理是什么?它只是在后端处理吗?我发出请求,NSURLRequest在本地检查,如果有缓存,则无需我进行任何额外操作就返回它吗? - Padin215
1
在应用程序启动时,您只需初始化缓存即可。从那时起,所有的NSURL请求都将由NSURLCache处理。当您创建一个NSURL请求时,您可以指定缓存策略,如NSURLCacheStorageAllowed。 - Edwin Vermeer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接