zoukankan      html  css  js  c++  java
  • Swift项目开发中缓存计算以及清除

    //
    //  KMCacheTool.swift
    //  StopSmokingPrograms
    //
    //  Created by Fran on 15/10/15.
    //  Copyright © 2015年 kimree. All rights reserved.
    //
    
    import UIKit
    
    class KMCacheTool: NSObject {
        // 计算缓存大小
        static var cacheSize: String{
            get{
                let basePath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.CachesDirectory, NSSearchPathDomainMask.UserDomainMask, true).first
                let fileManager = NSFileManager.defaultManager()
                
                func caculateCache() -> Float{
                    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 _{
                                    
                                }
                            }
                        }
                    }
                    
                    return total
                }
                
                
                let totalCache = caculateCache()
                return NSString(format: "%.2f MB", totalCache / 1024.0 / 1024.0 ) as String
            }
        }
        
        // 清除缓存
        class func clearCache() -> Bool{
            var result = true
            let basePath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.CachesDirectory, NSSearchPathDomainMask.UserDomainMask, true).first
            let fileManager = NSFileManager.defaultManager()
            if fileManager.fileExistsAtPath(basePath!){
                let childrenPath = fileManager.subpathsAtPath(basePath!)
                for childPath in childrenPath!{
                    let cachePath = basePath?.stringByAppendingString("/").stringByAppendingString(childPath)
                    do{
                        try fileManager.removeItemAtPath(cachePath!)
                    }catch _{
                        result = false
                    }
                }
            }
            
            return result
        }
    }
    

      

  • 相关阅读:
    Repeater 中 OnItemCommand 用法
    正则匹配 替换..追加..
    Jquery validform
    MSSQL执行大脚本文件时,提示“内存不足”的解决办法
    获取表达式属性名称
    动态查询框架
    领域事件相关文章
    在微服务中使用领域事件(转载)
    Java核心编程快速学习(转载)
    面向对象编程思想(前传)--你必须知道的javascript(转载)
  • 原文地址:https://www.cnblogs.com/FranZhou/p/5066899.html
Copyright © 2011-2022 走看看