美文网首页iOS面试资料
NSURLCache缓存的使用

NSURLCache缓存的使用

作者: 南京小伙 | 来源:发表于2017-10-19 15:54 被阅读362次

缓存策略

App 中有3种网络缓存存策略(只对 get 请求做缓存) 1.不返回缓存数据,实时返回接口数据 2.首先返回缓存数据,接口数据覆盖缓存,并返回 3.默认不返回缓存数据,接口失败时返回

同时对 WebView 也使用的缓存策略(UIWebView的NSURLRequest设置了缓存策略,NSURLCache 会自动根据缓存策略来使用)。

都是使用 NSURLCache 来实现的。不需要单独写工具类来实现缓存。有缓存策略同时也有清除机制分自动清除和手动清除。

NSURLRequest 的缓存策略

1.NSURLRequest需要一个缓存策略参数来说明它请求的url何如缓存数据的:CachePolicy类型。 (1)NSURLRequestUseProtocolCachePolicy:NSURLRequest默认的cachepolicy,使用Protocol协议定义。 (2)NSURLRequestReloadIgnoringCacheData:忽略缓存直接从原始地址下载。 (3)NSURLRequestReturnCacheDataElseLoad:只有在cache中不存在data时才从原始地址下载。 (4)NSURLRequestReturnCacheDataDontLoad:只使用cache数据,如果不存在cache,请求失败;用于没有建立网络连接离线模式; (5)NSURLRequestReloadIgnoringLocalAndRemoteCacheData:忽略本地和远程的缓存数据,直接从原始地址下载,与NSURLRequestReloadIgnoringCacheData类似。 (6)NSURLRequestReloadRevalidatingCacheData:验证本地数据与远程数据是否相同,如果不同则下载远程数据,否则使用本地数据。 (7)说明:5和6苹果暂未实现。

NSURLCache 使用

在 Appdelegate 中的 didFinishLaunchingWithOptions 方法中实现

NSURLCache *URLCache = [[NSURLCache alloc] initWithMemoryCapacity:4 * 1024 * 1024 diskCapacity:20 * 1024 * 1024 diskPath:nil];

[NSURLCache setSharedURLCache:URLCache];

在自定义网络底层请求方法中根据不同的缓存策略进行不同的业务缓存操作核心方法

写缓存

NSCachedURLResponse *cachedResp = [[NSCachedURLResponse alloc] initWithResponse:response

data:responseObject];

[[NSURLCache sharedURLCache] storeCachedResponse:cachedResp forRequest:URLRequest];

读缓存

NSCachedURLResponse *cachedResp = [[NSURLCache sharedURLCache] cachedResponseForRequest:URLRequest];

NSCachedURLResponse(包装了一下系统缓存机制的对象)

NSURLCacheStoragePolicy 缓存策略有三种 enum { NSURLCacheStorageAllowed, NSURLCacheStorageAllowedInMemoryOnly, NSURLCacheStorageNotAllowed, };

主要是对其属性 data 来获取请求数据。

清除缓存机制

在app 启动是清除上一次 app 所产生的缓存。只缓存本次使用中 app 的请求。

相关文章

  • iOS网络编程(四):缓存类NSURLCache介绍

    网络请求中缓存类NSURLCache常用属性和方法: 参考:iOS网络编程之六——数据缓存类NSURLCache使用解析

  • NSURLCache使用

    今天简单总结一下NSURLCache的使用。 NSURLCache是用于网络请求的缓存,一般缓存策略有: NSUR...

  • NSURLCache缓存的使用

    缓存策略 App 中有3种网络缓存存策略(只对 get 请求做缓存) 1.不返回缓存数据,实时返回接口数据 2.首...

  • NSURLCache

    NSURLCache不仅提供了内存和磁盘缓存方式,还有完善的缓存策略可配置。比如使用NSURLSession进行网...

  • iOS 数据存储(八) -网络请求缓存NSURLCache

    NSURLCache 提供的是内存以及磁盘的综合缓存机制。NSURLCache 会将数据缓存到沙盒路径下的 Lib...

  • AFNetworking的缓存机制

    AFNetworking实际上使用了两个缓存机制:AFImageCache和NSURLCache. 一.AFIma...

  • 网络请求缓存策略

    缓存NSURLCache详解和使用 1.参考此篇详细博客地址 2.NSURLRequestCachePolicy的...

  • NSURLCache

    NSURLCache为你的url请求提供了内存以及磁盘上的综合缓存机制。使用缓存可以减少向服务发送请求的次数,同时...

  • iOS

    2016.10.25 (NSURLCache仅支持内存级别缓存,不支持硬盘级别缓存)

  • iOS网络请求缓存 - NSURLCache

    NSURLCache NSURLCache为应用程序的URL请求提供复合的内存和磁盘缓存机制。作为Foundati...

网友评论

    本文标题:NSURLCache缓存的使用

    本文链接:https://www.haomeiwen.com/subject/ydauuxtx.html