NSURLRequest缓存策略枚举

时间:2013-09-28 14:41:15

标签: objective-c caching enums nsurlrequest

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

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;

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

我应该将其定义为:

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

或者我将它定义为:

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

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

1 个答案:

答案 0 :(得分:8)

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