private var elements = NSCache<NSString, AnyObject>()
private var keysUsedSoFar = Set<String>()
var count: Int {
var count = 0
for key in keysUsedSoFar where readers.object(forKey: key as NSString) != nil {
count += 1
}
return count
}
func loadCache(element: AnyObject forKey key: String) {
keysUsedSoFar.insert(key)
elements.setObject(element, forKey: key as NSString)
}
1条答案
按热度按时间kmynzznz1#
这是一个有点古怪,但最近我发现自己遇到了类似的情况。
在我的例子中该高速缓存是一个私有的ivar,所以它是用一个setter方法加载的,这个方法允许我在为缓存设置对象时跟踪我使用的每个键。然后,迭代所有可能的对象以检查该高速缓存中仍有多少对象是一件简单的事情(这在应用程序中可能很有用,但同样只需要单元测试)。