URL加载系统NSURLSession 之URLCache和requestCachePolicy的使用【三】

本文介绍了iOS开发中如何利用URLCache进行数据缓存,以提高应用性能。详细讲解了URLCache的工作原理,包括内存与磁盘缓存,以及如何创建、设置缓存对象,管理缓存数据,并给出了一个综合使用示例。
摘要由CSDN通过智能技术生成

背景:

在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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值