iOS开发 - Swift实现清除缓存功能

前言:

开发移动应用时,请求网络资源是再常见不过的功能。如果每次都去请求,不但浪费时间,用户体验也会变差,所以移动应用都会做离线缓存处理,其中已图片缓存最为常见。
但是时间长了,离线缓存会占用大量的手机空间,所以清除缓存功能基本是移动应用开发的标配。


实现:

本文介绍在iOS开发中,Swift实现清除缓存功能。主要分为统计缓存文件大小和删除缓存文件两个步骤:

1.统计缓存文件大小
func fileSizeOfCache()-> Int {

    // 取出cache文件夹目录 缓存文件都在这个目录下
    let cachePath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.CachesDirectory, NSSearchPathDomainMask.UserDomainMask, true).first
    //缓存目录路径
    print(cachePath)

    // 取出文件夹下所有文件数组
    let fileArr = NSFileManager.defaultManager().subpathsAtPath(cachePath!)

    //快速枚举出所有文件名 计算文件大小
    var size = 0
    for file in fileArr! {

        // 把文件名拼接到路径中
        let path = cachePath?.stringByAppendingString("/\(file)")
        // 取出文件属性
        let floder = try! NSFileManager.defaultManager().attributesOfItemAtPath(path!)
        // 用元组取出文件大小属性
        for (abc, bcd) in floder {
            // 累加文件大小
            if abc == NSFileSize {
                size += bcd.integerValue
            }
        }
    }

    let mm = size / 1024 / 1024

    return mm
}
2.删除缓存文件
func clearCache() {

    // 取出cache文件夹目录 缓存文件都在这个目录下
    let cachePath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.CachesDirectory, NSSearchPathDomainMask.UserDomainMask, true).first

    // 取出文件夹下所有文件数组
    let fileArr = NSFileManager.defaultManager().subpathsAtPath(cachePath!)

    // 遍历删除
    for file in fileArr! {

        let path = cachePath?.stringByAppendingString("/\(file)")
        if NSFileManager.defaultManager().fileExistsAtPath(path!) {

            do {
                try NSFileManager.defaultManager().removeItemAtPath(path!)
            } catch {

            }
        }
    }
}
3.效果图

清除缓存01.gif

本文首发于马燕龙个人博客,欢迎分享,转载请标明出处。
马燕龙个人博客:http://www.mayanlong.com
马燕龙个人微博:http://weibo.com/imayanlong 
马燕龙Github主页:https://github.com/yanlongma

 

转载于:https://www.cnblogs.com/imayanlong/p/5617625.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值