swift清除缓存实例

overridefunc viewDidLoad() {

        super.viewDidLoad()
        let btn =UIButton.init(type:UIButtonType.RoundedRect)
        btn.frame =CGRectMake(100,100, 100,50)
        btn.setTitle("清除缓存", forState:UIControlState.Normal)
        btn.addTarget(self, action:#selector(clearCacheBtnClick), forControlEvents:UIControlEvents.TouchUpInside)
        self.view.addSubview(btn)
    }
    func clearCacheBtnClick(sender:UIButton){
        print(sender.tag)
        //提示框
        let message =self.caculateCache()
        let alert =UIAlertController(title: "清除缓存", message: message, preferredStyle:UIAlertControllerStyle.Alert)
        let alertConfirm =UIAlertAction(title: "确定", style:UIAlertActionStyle.Default) { (alertConfirm) ->Void in
            self.clearCache()
        }
        alert.addAction(alertConfirm)
        let cancle =UIAlertAction(title: "取消", style:UIAlertActionStyle.Cancel) { (cancle) ->Void in
        }
        alert.addAction(cancle)
        //提示框弹出
        presentViewController(alert, animated:true) { () -> Voidin
            
        }
    }
    //计算缓存大小
    
    func caculateCache() ->String{
        let basePath =NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.CachesDirectory,NSSearchPathDomainMask.UserDomainMask,true).first
        let fileManager =NSFileManager.defaultManager()
        print("cache= \(basePath)")
        
        
        var total:Float = 0
        if fileManager.fileExistsAtPath(basePath!){
            let childrenPath = fileManager.subpathsAtPath(basePath!)
            if childrenPath !=nil{
                for path in childrenPath!{
                    let childPath = basePath!.stringByAppendingString("/").stringByAppendingString(path)
                    do{
                       let attr = try fileManager.attributesOfItemAtPath(childPath)
                       let fileSize = attr["NSFileSize"]as! Float
                        total += fileSize
                        
                    }catch_{
                        
                    }
                }
            }
        }
        
        let cacheSize =NSString(format: "%.1f MB缓存", total /1024.0 / 1024.0 )as String
        return cacheSize
    }

    //清除缓存
     func clearCache() ->Bool{
        var result =true
        let basePath =NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.CachesDirectory,NSSearchPathDomainMask.UserDomainMask,true).first
        print("cache= \(basePath)")
        let fileManager =NSFileManager.defaultManager()
        if fileManager.fileExistsAtPath(basePath!){
            let childrenPath = fileManager.subpathsAtPath(basePath!)
            for childPathin childrenPath!{
                let cachePath = basePath?.stringByAppendingString("/").stringByAppendingString(childPath)
                do{
                    try fileManager.removeItemAtPath(cachePath!)
                }catch_{
                    result =false
                }
            }
        }
        
        return result
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值