NSURLRequestCachePolicy详解

源码:

typedef NS_ENUM(NSUInteger, NSURLRequestCachePolicy)
{
    NSURLRequestUseProtocolCachePolicy = 0,

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

    NSURLRequestReturnCacheDataElseLoad = 2,
    NSURLRequestReturnCacheDataDontLoad = 3,

    NSURLRequestReloadRevalidatingCacheData = 5, // Unimplemented
};

NSURLRequestCachePolicy

NSURLRequestCachePolicy枚举定义了一些常量,这些常量被用来指定当系统处理网络请求时与缓存系统的交互类型。这些常量覆盖了很多需要做的交互,在确定是否已经存在缓存数据用于满足加载请求后做。

NSURLRequestUseProtocolCachePolicy

指定协议实现中定义的缓存逻辑(如果有的话)用于特定的URL加载请求。这是URL加载请求的默认策略。

NSURLRequestReloadIgnoringLocalCacheData

URL加载的数据应该从来源加载。不应该使用任何现有的本地缓存数据(不论其是否是新的或是有效的)来满足URL加载请求。

NSURLRequestReloadIgnoringLocalAndRemoteCacheData(未实现)

不使用本地缓存,且在协议允许的范围内也不使用任何代理以及中介的缓存。

NSURLRequestReloadIgnoringCacheData

NSURLRequestReloadIgnoringLocalCacheData的旧名称。

NSURLRequestReturnCacheDataElseLoad

已有的缓存不管是否到期都应该被用来满足加载请求。如果依然没有缓存的数据,请求会从原地址加载。

NSURLRequestReturnCacheDataDontLoad

已有的缓存不管是否到期都应该被用来满足加载请求。如果依然没有缓存的数据,也不会从原地址尝试加载。这种情况一般用于“离线模式”。

NSURLRequestReloadRevalidatingCacheData(未实现)

已有的缓存现需要从来源证实有效性,不然需要从原地址重新加载。

你可能感兴趣的:(NSURLRequestCachePolicy详解)