Stash是Swift的并行对象缓存。它基于TMCache。
Stash用于临时持久化对象,如网络响应(图片等)或难以再现的值。
Stash
是一个简单的对象,它封装了Memory
(一个快速的内存存储)和Disk
(一个较慢的、基于文件系统的存储)。Memory
在您的应用程序收到内存警告时会自动清除。Disk
将项目持久化,直到您手动删除项目或使用限制自动删除。
缓存将接受任何符合NSCoding
的对象,尽管我对外开放考虑不同的编码方式。
缓存的API主要是同步的,尽管大部分都有异步封装。
Stash提供了一个相对简单的同步API,可以使用如下
let stash = try! Stash(name: "MyCache", rootPath: NSTemporaryDirectory())
let image = UIImage(...)
stash["MyKey"] = image
let retreivedImage = stash["MyKey"] as? UIImage
和一个异步API
let stash = try! Stash(name: "MyCache", rootPath: NSTemporaryDirectory())
let image = UIImage(...)
stash.setObject(image, forKey: "MyKey") { cache: Stash in
// It's Done!!!
}
// Some time later, to access
stash.objectForKey("MyKey") { cache, key, value in
let image = value as? UIImage
}
将此仓库添加到您的Package.swift,然后运行swift build