《CacheIsKing》是一个简单的缓存,允许您存储任何项目,包括对象、纯Swift结构体、枚举(带有关联值)等。简单来说,它被设计成所有项目的NSCache,包括Swift变量。
Hashable的键简单设置、获取和删除项目NSCache,当应用进入后台时,缓存也会被清除String、Int和Float键的索引itemForKey使用泛型,所以当类型正确推断时,您不必对返回值进行强制类型转换NSCache,缓存可以设置一个countLimit来确保缓存不会太大只需像使用NSCache一样使用KingCache类。使用setItem和itemForKey方法允许您使用类型推断来获取你想要的值。
let cache = KingCache()
cache.setItem(123, forKey: "123")
if let item: Int = cache.itemForKey(456) {
doSomethingWithItem(item)
}您还可以使用索引来从缓存中设置/获取项目。不幸的是,由于Swift还不支持泛型索引方法,您将需要根据需要强制转换您的项目。目前只支持String、Int和Float键。
let cache = KingCache()
cache["123"] = 123
if let item = cache[456] as? Int {
doSomethingWithItem(item)
}KingCache还有一个countLimit属性,允许您设置缓存中的最大项目数。目前,它将在达到countLimit之前随机移除项目。
let cache = KingCache()
cache.countLimit = 2
cache[123] = 123
cache[234] = 234
cache[345] = 345
print("\(cache.count)") // shows a count of 2