//
// GA_CachesImage.swift
// GA_BrowseImage
//
// Created by houjianan on 2016/12/5.
// Copyright © 2016年 houjianan. All rights reserved.
//
import UIKit
private let c: GA_CachesImage = GA_CachesImage()
class GA_CachesImage: NSObject {
class var share: GA_CachesImage {
return c
}
func writeLocalImage(data: Data, key: String) {
DispatchQueue.global().async {
let path = self.createPath()
self.removeItem(atPath: path, key: key)
if FileManager.default.isWritableFile(atPath: path) {
try! data.write(to: URL(fileURLWithPath: path + key))
}
}
}
func writeLocal(image: UIImage, key: String) {
DispatchQueue.global().async {
print(key)
let path = self.createPath()
self.removeItem(atPath: path, key: key)
if FileManager.default.isWritableFile(atPath: path) {
try! UIImageJPEGRepresentation(image, 1)?.write(to: URL(fileURLWithPath: path + key))
}
}
}
func readLocalData(key: String) -> Data? {
if FileManager.default.fileExists(atPath: createPath() + key) {
return try! Data(contentsOf: URL(fileURLWithPath: createPath() + key))
}
return nil
}
func readLocalImage(key: String) -> UIImage? {
if let imageData = readLocalData(key: key) {
return UIImage(data: imageData)
}
return nil
}
func deleteLocal(key: String) {
removeItem(atPath: createPath(), key: key)
}
private func createPath() -> String {
let newPath = NSHomeDirectory() + "/Documents/images/"
if !FileManager.default.fileExists(atPath: newPath) {
print(newPath)
try! FileManager.default.createDirectory(atPath: newPath, withIntermediateDirectories: true, attributes: nil)
}
return newPath
}
private func removeItem(atPath: String, key: String) {
if FileManager.default.fileExists(atPath: atPath + key) {
try! FileManager.default.removeItem(atPath: atPath + key)
}
}
}
swift - 图片存储
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 本文主要内容 iOS沙盒的目录结构 使用plist文件存储 使用NSUserDefaults存储数据 目录结构 1...
- 本节知识点 存储属性 常量存储属性 类和结构体常量与存储属性的关系 延迟存储(懒加载)属性 计算属性 只读计算属性...
- 1.用NSUserDefaults存储配置信息 注:本次使用NSUserDefaults存储信息是在不考虑安全问题...
- 通常情况下,我们用NSUserDefaults存储数据信息,但是对于一些私密信息,比如密码、证书等等,就需要使用更...