背景:
在iOS开发中,我们需要多次的和服务器进行数据交互,为了减少与服务器的交互次数,加快app的响应速度一般的会在iOS设备中去添加一个缓存机制,减少对同一个URL的多次请求以达到更快速度的对用户的响应提高程序的运行效率
URLCache简介:
URLcache是将URL请求映射到缓存的响应对象,它提供复合的内存与磁盘缓存并允许开发者去操作内存和磁盘部分的大小以及控制持久存储的路径
一点需要注意的是,在iOS系统中如果系统磁盘不足时会清除磁盘缓存。
URLcache是线程安全的,但是请注意在对共享资源进行读取和书写时的资源竞争问题!
创建缓存实例:
1、class var shared: URLCache // 获取共享缓存实例
2、init(memoryCapacity: Int, diskCapacity: Int, diskPath: String?) // 创建新的缓存对象
例如:创建共享和自定义缓存对象
/*创建共享缓存实例*/
func urlCacheUser() -> Void {
let cache:URLCache = URLCache.shared
print(cache)
}
/*创建自定义URL缓存实例*/
func creatCustomerCache() -> Void {
/* memoryCapacity 内存容量
* diskCapacity 磁盘容量
* diskPath 磁盘存储地址
*/
let basePath:String = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first!
let cachePath = "\(basePath)/customerFile"
let cache:URLCache = URLCache.init(memoryCapacity: 1024, diskCapacity: 1024 * 10, diskPath: cachePath)
print(cache)
}
缓存对象的属性
1、var currentDiskUsage: Int // 磁盘的高速缓存的当前大小
2、var diskCapacity: Int // 磁盘高速缓存大小
3、var currentMemoryUsage: Int