【问题标题】:How to set cache expiration time when using UIWebView and NSURLRequest?使用 UIWebView 和 NSURLRequest 时如何设置缓存过期时间?
【发布时间】:2013-06-20 23:02:12
【问题描述】:

我正在寻找最简单的默认解决方案。目前,我有一个关于视图控制器的视图控制器,其中显示了来自某个 url 的一些信息。我需要缓存它以供离线使用,并且缓存应该在一段时间后更新,例如一周后。目前,我正在使用 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、保存、检查和加载)的帖子。但也许有更直接和简单的解决方案?

【问题讨论】:

    标签: iphone ios objective-c caching


    【解决方案1】:

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

    [[NSURLCache sharedURLCache] removeAllCachedResponses];
    

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

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

    【讨论】:

    • 所以,我仍然需要手动保存、加载和清理缓存 :) 一个星期以来一直在寻找像缓存这样的浏览器类型功能。
    猜你喜欢
    • 2013-11-20
    • 2012-07-16
    • 2017-05-17
    • 2011-04-15
    • 2021-09-11
    • 2019-03-06
    • 2013-01-27
    • 2022-01-05
    • 2016-01-15
    相关资源
    最近更新 更多