最近的烦心事情不少,学习Swift之路就这么慢了下来。10月底,朋友说想要一个可以看嘿嘿的电影的APP。刚好在学Swift,就尝试着用Swift去开发一款。功能已经实现,但由于能力有限,很多东西是用的第三方,如播放功能。昨天写完朋友让给添加一个清除缓存的功能,说图片占的太大,所以只好找找OC的,然后用Swift改。。。
1.找到缓存的路径
let cachePath = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.cachesDirectory, FileManager.SearchPathDomainMask.userDomainMask, true).first
路径结果:/Users/用户名/Library/Developer/CoreSimulator/Devices/C8543F66-393F-4174-A12D-1BD99E1F8141/data/Containers/Data/Application/6DE40038-25AE-4D82-900E-DED0C76DDE50/Library/Caches
在Finder中按command+shift+G后粘贴要去的位置即可。
2.计算内存大小
let files = FileManager.default.subpaths(atPath:cachePath)
// 统计文件夹内所有文件大小
var total = Int();
// 快速取出所有文件名
for p in files!{
// 把文件拼接到路径中
let path = cachePath.appendingFormat("/\(p)")
// 取出文件属性
let floder = try! FileManager.default.attributesOfItem(atPath: path)
// 用元组取出文件大小属性
for (abc,bcd) in floder {
// 只去出文件大小进行拼接
if abc == FileAttributeKey.size{
total += (bcd as AnyObject).integerValue
}
}
}
let message = "\(total/(1000*1000))M缓存"
3.清除缓存
let files = FileManager.default.subpaths(atPath:cachePath)
let alert = UIAlertController(title: "清除缓存", message: nil, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "确定", style: UIAlertActionStyle.default) { (alertConfirm) -> Void in
// 点击确定->删除
for p in files!{
// 拼接路径
let path = self.cachePath.appendingFormat("/\(p)")
// 判断是否可以删除
if(FileManager.default.fileExists(atPath: path)){
// 删除
try! FileManager.default.removeItem(atPath: path)
}
}
})
alert.addAction(UIAlertAction(title: "取消", style: UIAlertActionStyle.cancel) { (cancle) -> Void in
print("用户点击取消")
})
// 弹出提示框
present(alert, animated: true, completion: nil)
以上放进一个button的方法里即可。