天天看點

iOS網絡程式設計之六——資料緩存類NSURLCache使用解析

一、引言

       在前面部落格中,介紹了NSURLRequest請求類的相關使用方法,其中有介紹關于請求傳回資料的緩存政策,實際上,iOS中具體緩存操作的管理是由NSURLCache類來實作的。NSURLRequest類介紹的部落格位址如下:

iOS中NSURLRequest相關使用:

http://my.oschina.net/u/2340880/blog/620225

二、NSURLCache中方法與屬性

//擷取目前應用的緩存管理對象

+ (NSURLCache *)sharedURLCache;

//設定自定義的NSURLCache作為應用緩存管理對象

+ (void)setSharedURLCache:(NSURLCache *)cache;

//初始化一個應用緩存對象

/*

memoryCapacity 設定記憶體緩存容量

diskCapacity 設定磁盤緩存容量

path 磁盤緩存路徑

内容緩存會在應用程式退出後 清空 磁盤緩存不會

*/

- (instancetype)initWithMemoryCapacity:(NSUInteger)memoryCapacity diskCapacity:(NSUInteger)diskCapacity diskPath:(nullable NSString *)path;

//擷取某一請求的緩存

- (nullable NSCachedURLResponse *)cachedResponseForRequest:(NSURLRequest *)request;

//給請求設定指定的緩存

- (void)storeCachedResponse:(NSCachedURLResponse *)cachedResponse forRequest:(NSURLRequest *)request;

//移除某個請求的緩存

- (void)removeCachedResponseForRequest:(NSURLRequest *)request;

//移除所有緩存資料

- (void)removeAllCachedResponses;

//移除某個時間起的緩存設定

- (void)removeCachedResponsesSinceDate:(NSDate *)date NS_AVAILABLE(10_10, 8_0);

//記憶體緩存容量大小

@property NSUInteger memoryCapacity;

//磁盤緩存容量大小

@property NSUInteger diskCapacity;

//目前已用記憶體容量

@property (readonly) NSUInteger currentMemoryUsage;

//目前已用磁盤容量

@property (readonly) NSUInteger currentDiskUsage;