使用UIWebView和NSURLRequest时如何设置缓存过期时间?

时间:2013-06-20 13:43:35

标签: iphone ios objective-c caching

我正在寻找最简单的默认解决方案。目前,我有一个关于视图控制器的地方,其中显示了一些关于来自某个网​​址的信息。我需要缓存它以供离线使用,并且缓存应该在一段时间后更新,例如一周后。目前,我正在使用NSURLRequestReturnCacheDataElseLoad缓存策略,但不知道如何设置缓存过期和缓存更新时间:

- (void)viewDidLoad
{
  [super viewDidLoad];
   // Do any additional setup after loading the view from its nib.

   NSString *urlString = [NSString stringWithFormat:@"%@%@", kServiceBaseUrl, @"docs/about_en.html"];

   NSURL *url = [NSURL URLWithString:urlString];
   NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:30];

   [self.webView loadRequest:request];
}

我已经阅读了几篇文章,建议使用手动缓存处理(获取NSData,保存,检查和加载)。但也许有更直接和简单的解决方案?

1 个答案:

答案 0 :(得分:1)

您可以像这样手动清除缓存:

[[NSURLCache sharedURLCache] removeAllCachedResponses];

关于到期和处理选项,请查看处理缓存here的NSURLRequest类参考。

您可以从Apple URL加载系统编程指南here获取有关了解缓存访问的详细说明。