iPhone网络开发二之缓存管理

本文深入探讨了iOS应用中利用NSURLCache类进行网络请求缓存的原理与实践,包括缓存规则设定、缓存管理类使用方法、缓存对象集合操作,以及如何控制响应是否被缓冲和内存缓冲策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

iPhone网络程序比较依赖网络,所以sdk url loading 系统提供了缓存管理,是基于磁盘和内存复合方式的缓冲,缓冲使得程序减少对网络连接的依赖,并提供对之前缓存的response更快的回访时间。 被存储的缓冲是和每一个程序相关的(我的理解就是每一个程序有自己的缓冲,不知到对不对) 

详细的cache 管理类可以看苹果官方的文档 

NSURLRequest类在初始化的时候指定缓存规则,如果未指定系统按默认的规则(一般来说我们开发的程序都是按默认的规则,除非对缓存有特殊的要求) 
NSURLConnection类可以查询缓存 

NSURLCache类提供了一些方法,可以配置缓存的尺寸和在磁盘的位置,也提供了一些方法去管理NSCachedURLResponse 对象的集合,这些对象存储着被缓冲的responses 

一个NSCachedURLResponse对象封装了NSURLResponse对象和URL的内容数据,前面一篇我提到过NSURLResponse对象本身只存储URL的元数据(metadata),NSCachedURLResponse对象也提供了一个用户信息字典,用来给程序缓存任意的自定义数据 

并不是所有的协议实现都支持response缓冲的,只有http和https协议的request是被缓冲的,而且https协议的请求从不在磁盘缓冲 

一个NSURLConnection对象可以通过实现 connection:willCacheResponse:delegate方法,去控制回应(response)是否被缓冲和是否只在内存中缓冲
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值