iOS网络中的缓存调用?

时间:2013-01-18 23:28:11

标签: iphone ios objective-c nsurlconnection

我在我的iPhone应用程序中进行了一些网络调用,我注意到它们的行为就像响应被缓存一样。例如,如果我按下一个按钮来下载大小非常重要的东西(因此在下载时会导致明显的延迟),它会在第一次时按预期运行并需要一两秒钟。如果我重复这个过程,它会立即完成。我还更新了一些依赖于服务器端并从应用程序刷新的文件,并且没有出现更改。

我的网络代码非常简单,并且没有对缓存做任何事情。它本质上是一个围绕[NSURLConnection sendAsynchronousRequest:...的便利包装器以及一些日志记录和逻辑,以确保在请求未完成时显示系统网络活动指示器。有关完整的详细信息,请参阅here(GitHub链接)。

我是否猜测缓存此行为的有效猜测?如果是这样,它可能会在设备上发生,我可以禁用它吗?我希望我的数据在我想要的时候实际刷新。

1 个答案:

答案 0 :(得分:3)

您是否在NSURLRequest上设置了缓存政策?

NSURLRequest *myRequest = [NSURLRequest requestWithURL:myURL cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:90];

查看NSURLRequest Docs并查看NSURLRequestCachePolicy部分,了解您可以使用的不同缓存政策。