CacheIsKing 0.0.2

CacheIsKing 0.0.2

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2016年1月
SPM支持 SPM

Christopher Luu维护。



  • Christopher Luu

CacheIsKing

《CacheIsKing》是一个简单的缓存,允许您存储任何项目,包括对象、纯Swift结构体、枚举(带有关联值)等。简单来说,它被设计成所有项目的NSCache,包括Swift变量。

特性

  • 基于任何可Hashable的键简单设置、获取和删除项目
  • 当应用接收到内存警告时,缓存会被清除
  • 类似于NSCache,当应用进入后台时,缓存也会被清除
  • 支持对于StringIntFloat键的索引
  • itemForKey使用泛型,所以当类型正确推断时,您不必对返回值进行强制类型转换
  • 类似于NSCache,缓存可以设置一个countLimit来确保缓存不会太大

要求

  • iOS 8.0+
  • tvOS 9.0+
  • Xcode 7+

使用

只需像使用NSCache一样使用KingCache类。使用setItemitemForKey方法允许您使用类型推断来获取你想要的值。

let cache = KingCache()
cache.setItem(123, forKey: "123")

if let item: Int = cache.itemForKey(456) {
    doSomethingWithItem(item)
}

您还可以使用索引来从缓存中设置/获取项目。不幸的是,由于Swift还不支持泛型索引方法,您将需要根据需要强制转换您的项目。目前只支持StringIntFloat键。

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

待办事项

  • 改进淘汰算法(当前随机淘汰)
  • 当Swift支持泛型索引时,更新更好的索引支持