我可以强制NSURLConnection从缓存加载吗?

时间:2010-02-03 23:01:08

标签: iphone cocoa-touch http

我曾考虑过编写自定义URL缓存,但似乎NSURLCache应支持磁盘缓存。我希望我的iphone应用程序使用缓存的响应,而不会直到资源变得陈旧(由我从服务器发回的标头确定)。

我是否必须使用NSURLConnection调用一些奇特的东西?如何让iphone使用网址的缓存版本?

更新:这是指向我的代码的链接

http://pastie.org/808549

4 个答案:

答案 0 :(得分:5)

我认为您可能需要在NSURLRequest中添加“cachePolicy”:

  

在   NSURLRequestReturnCacheDataElseLoad   缓存策略将导致URL   加载系统以使用缓存数据   忽略其年龄或失效日期,   如果存在,则从中加载数据   只有在那里才有原始来源   没有缓存版本。

http://developer.apple.com/mac/library/DOCUMENTATION/Cocoa/Conceptual/URLLoadingSystem/Concepts/CachePolicies.html#//apple_ref/doc/uid/20001843

那里有一些不同的政策。也许其中一个会有所帮助。

答案 1 :(得分:1)

不幸的是,答案是iPhone无法使用NSURLCache进行磁盘缓存,这使得它不适合我概述的场景。

我正在上自己的班级。

答案 2 :(得分:0)

在你参加ASI课程的时候看看它。

http://allseeing-i.com/ASIHTTPRequest/

他们非常好。

答案 3 :(得分:0)

如果您在请求中使用了etags,那么使用@typeoneerror所描述的策略进行缓存似乎可以正常工作。