iOS開發中的數據緩存

1. 緩存的實現:

在iOS開發中緩存常常用 NSURLCache 來實現, 這個類提供了大量的操做緩存的方法.緩存

NSURLCache常見的方法:服務器

(1)得到全局緩存對象(不必手動建立)NSURLCache *cache = [NSURLCache sharedURLCache];網絡

(2)設置內存緩存的最大容量(字節爲單位,默認爲512KB)- (void)setMemoryCapacity:(NSUInteger)memoryCapacity;code

(3)設置硬盤緩存的最大容量(字節爲單位,默認爲10M)- (void)setDiskCapacity:(NSUInteger)diskCapacity;對象

(4)硬盤緩存的位置:沙盒/Library/Caches內存

(5)取得某個請求的緩存- (NSCachedURLResponse *)cachedResponseForRequest:(NSURLRequest *)request;ci

(6)清除某個請求的緩存- (void)removeCachedResponseForRequest:(NSURLRequest *)request;開發

(7)清除全部的緩存- (void)removeAllCachedResponses;rem

2. NSURLCache緩存策略:

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

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

    NSURLRequestReturnCacheDataElseLoad = 2,
    NSURLRequestReturnCacheDataDontLoad = 3,

    NSURLRequestReloadRevalidatingCacheData = 5, // Unimplemented
};
  1. 一個網絡請求, 先判斷本地是否有緩存的信息, 若是有, 一方面從本地取出來展現到頁面上去, 另外一方面用本地的數據和服務器端的數據作比較, 若是有新數據 ,則服務器返回新的數據, 若是沒有新數據, 則無需返回新數據.
  2. 若是服務端有新數據, 清除全部本地緩存呢, 仍是 ???

緩存的注意事項:

緩存的設置須要根據具體的狀況考慮,若是請求某個URL的返回數據:it

  (1)常常更新:不能用緩存!好比股票、彩票數據

  (2)一成不變:果斷用緩存

  (3)偶爾更新:能夠按期更改緩存策略 或者 清除緩存

提示:若是大量使用緩存,會越積越大,建議按期清除緩存

相關文章
相關標籤/搜索