首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSURLCacheStorageNotAllowed仍在为NSURLRequest缓存

NSURLCacheStorageNotAllowed仍在为NSURLRequest缓存
EN

Stack Overflow用户
提问于 2014-03-02 07:42:59
回答 2查看 1.2K关注 0票数 2

我现在正在做一个iPhone应用程序项目,它使用cachePolicy:NSURLCacheStorageNotAllowed (我使用的是iOS7)使用NSURLRequests实现一些连接。

但似乎响应仍然被缓存,并且我得到了相同URL调用的旧响应。尽管将缓存策略设置为"cachePolicy:NSURLCacheStorageNotAllowed".

为什么它仍然缓存响应?这个问题在最新版本中仍然存在吗?

EN

回答 2

Stack Overflow用户

发布于 2014-07-13 15:44:47

缓存策略iOS7的正确枚举如下所述:

代码语言:javascript
复制
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:downloadURL
cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:60];

如果你超过3G,一些提供商使用缓存,即使你在你的缓存中禁用它,所以如果缓存策略不起作用,那么设置http报头字段NSMutableURLRequest -control为no-cache。

代码语言:javascript
复制
[request setValue:@"no-cache" forHTTPHeaderField:@"cache-control"];

这里的枚举列表检查您的头NSURLRequest.h是否有正确的最新枚举:)

代码语言:javascript
复制
enum
{
    NSURLRequestUseProtocolCachePolicy = 0,

    NSURLRequestReloadIgnoringLocalCacheData = 1,
    NSURLRequestReloadIgnoringLocalAndRemoteCacheData = 4, // Unimplemented
    NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData,

    NSURLRequestReturnCacheDataElseLoad = 2,
    NSURLRequestReturnCacheDataDontLoad = 3,

    NSURLRequestReloadRevalidatingCacheData = 5, // Unimplemented
};
 typedef NSUInteger NSURLRequestCachePolicy;
票数 3
EN

Stack Overflow用户

发布于 2016-09-07 20:31:21

非缓存请求的正确答案应该是NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:downloadURL cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60];,因为它是未实现的。

来自https://developer.apple.com/reference/foundation/nsurlrequestcachepolicy/nsurlrequestreloadignoringlocalcachedata?language=objc

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22121947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档