【问题标题】:NSURLRequest cache policy enumNSURLRequest 缓存策略枚举
【发布时间】:2013-09-28 14:41:15
【问题描述】:

我正在创建一个 url 请求,如下所示:

NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:1 timeoutInterval:5];

参考缓存策略的开发者文档,我阅读了以下内容:

enum
{
   NSURLRequestUseProtocolCachePolicy = 0,
   NSURLRequestReloadIgnoringLocalCacheData = 1,
   NSURLRequestReloadIgnoringLocalAndRemoteCacheData =4,
   NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData,
   NSURLRequestReturnCacheDataElseLoad = 2,
   NSURLRequestReturnCacheDataDontLoad = 3,
   NSURLRequestReloadRevalidatingCacheData = 5
};
typedef NSUInteger NSURLRequestCachePolicy;

那么为NSURLRequest 声明cachePolicy 的正确方法是什么?

我应该把它定义为:

NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:1 timeoutInterval:5];

或者我应该将其定义为:

NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:5];

两者似乎都有效,但一种方法比另一种更好吗?

【问题讨论】:

  • 感谢您在 SO 上发布此内容。我认为您已经对自己的问题有了新的答案...
  • @whyoz 我有点知道答案。我只是不完全明白我在做什么。
  • 这里没有人“完全”了解他们在做什么!哈哈..像这样的帖子可以帮助我们所有人,他们宁愿在这里搜索也不愿深入研究 Apple 文档,这些文档不像您为我们所做的那样一刀切。

标签: objective-c caching enums nsurlrequest


【解决方案1】:

第二种方法更好,因为您可以稍后轻松查看您的代码(例如,在您上次查看它的几周后)并说“啊,此请求将始终重新加载而忽略本地缓存”。否则,您将不得不做一些研究来弄清楚那个神秘的“1”是什么意思。

【讨论】:

  • +1;使用命名常量(几乎?)总是可行的方法。
  • @MichaelDautermann 好点。只是想澄清enums 在这种情况下的用法。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-06
  • 2011-10-02
  • 1970-01-01
  • 2012-09-05
  • 2020-08-03
  • 2011-11-12
  • 2011-01-18
相关资源
最近更新 更多