NSURLRequest的缓存策略

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NSURLRequest的缓存策略相关的知识,希望对你有一定的参考价值。

刚刚看到了一个小知识点,拿出来与大家分享一下,也是做个笔记。

NSURLRequest有缓存策略,是这条属性:

/*! 
    @method cachePolicy
    @abstract Returns the cache policy of the receiver. 
    @result The cache policy of the receiver. 
*/
@property (readonly) NSURLRequestCachePolicy cachePolicy;
NSURLRequestCachePolicy 是一个枚举
typedef NS_ENUM(NSUInteger, NSURLRequestCachePolicy)
{
    NSURLRequestUseProtocolCachePolicy = 0,

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

    NSURLRequestReturnCacheDataElseLoad = 2,
    NSURLRequestReturnCacheDataDontLoad = 3,

    NSURLRequestReloadRevalidatingCacheData = 5, // Unimplemented
};

有这么几个值,分别是这些意思:

默认缓存策略:NSURLRequestUseProtocolCachePolicy

忽视本地缓存,只加载网络数据:NSURLRequestReloadIgnoringLocalCacheData

先加载本地缓存,没有的情况下网络请求数据:NSURLRequestReturnCacheDataElseLoad

不加载本地缓存,直接请求:NSURLRequestReturnCacheDataDontLoad

 

以上是关于NSURLRequest的缓存策略的主要内容,如果未能解决你的问题,请参考以下文章

Android主流视频播放及缓存实现原理调研

iPhone:NSURLRequestCachePolicy 设置之间的性能差异

Android获取各个应用程序的缓存文件代码小片段(使用AIDL)

缓存策略的选择

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题