【发布时间】:2019-08-26 11:00:49
【问题描述】:
我正在使用NSCache 来缓存对象。有没有办法一次删除所有缓存?
我正在使用以下方法进行缓存:
class VC: UIViewController {
static let userCache = NSCache<NSString, User>()
func getUser(fromId id: String, completion: @escaping (_ user: User) -> Void) {
if let cachedVersion = VC.userCache.object(forKey: id as NSString) {
print("using cached user from id")
completion(cachedVersion)
return
}
// retrieve new instance of object
}
}
但我看到文档和数据部分随着时间的推移而增加(目前为 140MB+)。我尝试使用以下方法清除缓存,但没有成功:
VC.userCache.removeAllObjects()
有没有办法检索NSCache 的旧实例,这样我就不必在每次加载应用程序时都创建一个新实例?或者有没有办法在应用加载时删除所有缓存的对象?
【问题讨论】: