//
// 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存储数据信息,但是对于一些私密信息,比如密码、证书等等,就需要使用更...