2012-09-16 36 views
0

在iOS 5中,如果我的应用程序终止,我的NSURLConnection缓存会被吹走。即使我的应用程序终止并重新启动后,如何坚持NSURLConnection缓存?只要我的应用程序保持活跃状态​​,缓存工作就会很好。NSURLConnection缓存持久性

我在我的NSURLRequest中使用了NSURLRequestUseProtocolCachePolicy

采样头由我的服务器返回:

Cache-Control:public, max-age=3600 
Content-Encoding:deflate 
Content-Length:1606 
Content-Type:application/json; charset=utf-8 
Date:Sun, 16 Sep 2012 20:22:14 GMT 
Expires:Sun, 16 Sep 2012 21:22:15 GMT 
Last-Modified:Sun, 16 Sep 2012 20:22:15 GMT 
Vary:* 

如果我的应用程序在5分钟后结束,我重新开始,一个完整的新的下载尝试(验证与查尔斯HTTP监听)...

+0

除此之外,这取决于远程服务(服务器)设置的缓存标头。确保你引用一个相关的更好的帮助。 – Till

+1

感谢您更新您的问题 - 事实上,您的服务器在整个一小时的时间内要求进行适当的缓存。现在您需要的是磁盘缓存,并且在iOS5之前已被禁用(如果我正确记得)。请确保您阅读以下有关该问题的优秀文章:[nsurlcache-uses-a-disk-cache-as-of-ios5](http://petersteinberger.com/blog/2012/nsurlcache-uses-a-disk -cache-as-of-ios5 /) – Till

+0

因此,在iOS 5+中,我是否需要额外的代码? – jjxtra

回答

1

这似乎是我没有设置磁盘缓存大小的结果。即使应用程序终止,将其设置为500MB似乎仍然保留我的缓存。

+0

谢谢,我有同样的问题。像这样设置diskCapacity使缓存工作,即使应用程序终止并重新启动: 'NSURLCache * cache = [NSURLCache sharedURLCache]; /* 50 MB缓存*/ [缓存setDiskCapacity:1024 * 1024 * 50];' – Lextar

+0

我有一个平庸的12 MB缓存,它似乎根本没有使用它。有关这个问题的任何经验? –

+0

你的回复中有什么在你的HTTP标头中? – jjxtra