typedef NS_ENUM(NSUInteger, NSURLRequestCachePolicy)
{
NSURLRequestUseProtocolCachePolicy = 0,
NSURLRequestReloadIgnoringLocalCacheData = 1,
NSURLRequestReloadIgnoringLocalAndRemoteCacheData = 4, // Unimplemented
NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData,
NSURLRequestReturnCacheDataElseLoad = 2,
NSURLRequestReturnCacheDataDontLoad = 3,
NSURLRequestReloadRevalidatingCacheData = 5, // Unimplemented
};
NSURLRequestCachePolicy 是URL加载系统提供的一个磁盘和内存的缓存功能,来响应网络请求,这样就可以使减少对网络的依赖,提高响应性能。
NSURLRequestUseProtocolCachePolicy :默认策略。如果没有对应的NSCachedURLResponse就会直接去远端获取,如果存在缓存响应,URL加载系统就会检查这个响应,如果有这个响应就建立一个连向源端的连接来查看内容是否发生了变化。如果没有变化就直接使用本地缓存数据,如果有变化就从源端获取。
NSURLRequestReloadIgnoringLocalCacheData: 加载源端数据,不使用本地缓存数据。
NSURLRequestReloadIgnoringLocalAndRemoteCacheData:本地缓存数据,代理和其他中介的的缓存都忽略掉,直接加载源数据
NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData, 两个的设置相同,完全忽略缓存,直接加载源端数据。
NSURLRequestReturnCacheDataElseLoad =2:使用缓存数据,但是如果缓存数据过期了就使用源端数据
NSURLRequestReturnCacheDataDontLoad = 3,只使用cache数据,如果不存在缓存数据就请求失败,不再请求数据,用于没有网络连接的离线模式。
NSURLRequestReloadRevalidatingCacheData = 5,如果已存的缓存数据被提供他的源端确认为有效则允许使用缓存数据响应请求,否则从源端加载数据。