2013-01-18 44 views
0

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

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

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

回答

3

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

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

看看的NSURLRequest Docs,并期待在NSURLRequestCachePolicy节,你可以使用不同的缓存策略。

+0

该属性看起来是只读的。 –

+0

'cachePolicy'是只读的吗?根据文档,它不是只读的。也许尝试使用'requestWithURL:cachePolicy:timeoutInterval:'来初始化你的'NSURLRequest'。 –

+0

您链接到的文档(用于OS X)和同一文档的iOS版本都声明'cachePolicy'“返回接收者的缓存策略。”我没有看到它不是只读的参考。但我会尝试其他init方法。 –