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
        }
    }
    

      

  • 相关阅读:
    无法通过给定的扩展名确定设备类型
    biuld example_osgviewerGLUT遇到的error Link2019
    OpenGL渲染流水线
    设计模式总目录
    删除thumbs.db是提示正在使用
    COM技术内幕第十章笔记EXE中的服务器
    在高低版本之间互导max文件,以fbx格式为载体尤佳。
    参数值传递的本质
    VS 为什么要检查行尾的一致性?
    vs2005中的GL文件
  • 原文地址:https://www.cnblogs.com/FranZhou/p/5066899.html
Copyright © 2011-2022 走看看