以下是蘋果原有的枚舉類型: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 驗證本地數據與遠程數據是否相同,若是不一樣則下載遠程數據,不然使用本地數據。網絡