《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