SwiftlyCache
Swiftlycache
是一个用 swift 5
编写的线程安全的 IOS 通用缓存库。
特性
- 支持所有符合
codable
协议的数据类型 - 对象可以使用最不常使用算法进行驱逐
- 可以配置为在收到内存警告或当应用进入后台时自动回收对象或手动回收对象
- 使用下标可以使得数据的读取和写入更加方便
- 支持使用序列生成器读取数据
安装
CocoaPods
1. 在您的 Podfile 中添加 pod 'SwiftlyCache'
2. 运行 pod install
或 pod update
3. 导入 SwiftlyCache
手动
1.下载 SwiftlyCache
子目录下的所有文件
2.将源文件添加到您的Xcode项目中
示例
缓存遵循 codable
协议的结构体
struct Student:Codable {
var name:String
var age:Int
init(name:String,age:Int) {
self.name = name
self.age = age
}
}
let cache = MultiCache<Student>()
let shirley = Student(name: "shirley", age: 30)
设置要缓存的 key
和 value
cache.set(forKey: "shirley10", value: shirley)
根据给定的 key
查询相应的值
if let object = cache.object(forKey: "shirley1"){
print("当前Student是:\(object)")
}
根据 key
查询缓存中是否存在相应的 value
let isExists = cache.isExistsObjectForKey(forKey: "shirley20")
更多测试代码和案例,请参阅 swiftlycachedemo
中文介绍
SwiftlyCache
是一个用 Swift 5
编写的线程安全的 iOS 通用缓存库。
特性
- 支持所有遵循
Codable
协议的数据类型 - 支持 LRU 淘汰算法
- 当收到内存警告或者 App 进入后台时,内存缓存可以配置为自动清空或手动清空
- 支持使用
Subscript
,使读写数据更加方便 - 提供了
MultiCacheGennerator、
MemoryCacheGenerator、
DiskCacheGenerator
用于支持for..in、
compactMap、
map、
filter
等方法
使用方法
CocoaPods
1.在 Podfile 中添加 pod 'SwiftlyCache'
2.执行 pod install
或 pod update
3.导入 SwiftlyCache
手动导入
1.下载 SwiftlyCache
文件夹内所有内容
2.将 SwiftlyCache
内的源文件添加到你的工程
示例
将一个遵守Codable
协议的struct进行缓存
struct Student:Codable {
var name:String
var age:Int
init(name:String,age:Int) {
self.name = name
self.age = age
}
}
let cache = MultiCache<Student>()
let shirley = Student(name: "shirley", age: 30)
设置需要缓存的Key
和Value
cache.set(forKey: "shirley10", value: shirley)
根据给定的Key
查询对应的Value
if let object = cache.object(forKey: "shirley1"){
print("当前Student是:\(object)")
}
根据Key
查询缓存中是否存在对应的Value
let isExists = cache.isExistsObjectForKey(forKey: "shirley20")
更多测试代码和用例见 SwiftlyCacheDemo