NSURLRequestCachePolicy緩存

以下是蘋果原有的枚舉類型:web

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

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

    NSURLRequestReturnCacheDataElseLoad = 2,
    NSURLRequestReturnCacheDataDontLoad = 3,

    NSURLRequestReloadRevalidatingCacheData = 5, // Unimplemented
};

下面咱們一一解釋他們的意義:緩存

使用緩存的目的是爲了使用的應用程序能更快速的響應用戶輸入,是程序高效的運行。有時候咱們須要將遠程web服務器獲取的數據緩存起來,減小對同一個url屢次請求。

內存緩存咱們可使用sdk中的NSURLCache類。NSURLRequest須要一個緩存參數來講明它請求的url何如緩存數據的,咱們先看下它的CachePolicy類型。

一、NSURLRequestUseProtocolCachePolicy       NSURLRequest默認的cache policy,使用Protocol協議定義。服務器

二、NSURLRequestReloadIgnoringCacheData    忽略緩存直接從原始地址下載。
三、NSURLRequestReturnCacheDataElseLoad    只有在cache中不存在data時才從原始地址下載。
四、NSURLRequestReturnCacheDataDontLoad  只使用cache數據,若是不存在cache,請求失敗;用於沒有創建網絡鏈接離線模式;
五、NSURLRequestReloadIgnoringLocalAndRemoteCacheData    忽略本地和遠程的緩存數據,直接從原始地址下載,與NSURLRequestReloadIgnoringCacheData相似。
六、NSURLRequestReloadRevalidatingCacheData      驗證本地數據與遠程數據是否相同,若是不一樣則下載遠程數據,不然使用本地數據。網絡

相關文章
相關標籤/搜索