NSURLRequestReturnCacheDataElseLoad在iOS中如何工作?

NSURLRequestReturnCacheDataElseLoad在iOS中如何工作?,ios,iphone,objective-c,uiwebview,nsurlrequest,Ios,Iphone,Objective C,Uiwebview,Nsurlrequest,在我的应用程序中,我使用Webview并加载从Web服务器获取的数据。在这种情况下,它工作正常,但问题是我使用了NSURLRequest对象向服务器发送请求。我在下面这样写代码 NSMutableURLRequest * webPageRequest=[NSMutableURLRequest requestWithURL:webPageUrl cachePolicy:2 timeoutInterval:60.0]; 在这里,数据成功地缓存在内存中。但问题是,每当我打开应用程序时,它总是提供旧数

在我的应用程序中,我使用Webview并加载从Web服务器获取的数据。在这种情况下,它工作正常,但问题是我使用了NSURLRequest对象向服务器发送请求。我在下面这样写代码

NSMutableURLRequest * webPageRequest=[NSMutableURLRequest requestWithURL:webPageUrl cachePolicy:2 timeoutInterval:60.0];
在这里,数据成功地缓存在内存中。但问题是,每当我打开应用程序时,它总是提供旧数据。它没有向服务器发送新数据请求,甚至应用程序数据也没有更新。我支持IOS6和IOS7


所以你能告诉我如何解决这个问题吗。我可以知道数据在缓存中的可用时间吗。NSURLRequestReturnCacheDataElseLoad将如何工作意味着此方法将在什么情况下执行。

您可以看到旧数据的问题是因为NSURLRequestReturnCacheDataElseLoad,请参见此,它是从NSHister获取的:

NSURLRequestReturnCacheDataElseLoad:现有缓存数据应为 使用,无论其使用期限或到期日期。如果没有 缓存中与请求对应的现有数据,该数据为 从原始源加载


查看此文件,您应该找到为您的目的使用正确策略的方法。

嗨,格雷格,感谢您的大力支持。所以根据链接中的解释。我总是从缓存中获取旧数据。我可以知道在获取旧数据时是否有超时。因此,根据我的要求,这个NSURLRequestReloadRevalidatingCacheData:策略适合我,对吗?您必须阅读所有策略并选择最适合您的策略。对缓存过期进行一些研究,这样你就可以设置1h的过期时间,你的缓存将只保留一个小时。对于POST,它将从缓存加载吗?发生在我身上