我想知道是否最好使用一个NSCache全局实例,或者为每个需要它的组件使用多个NSCache。

例如,我有几个 View 子类,这些子类将内容绘制到图像中并缓存它们,以免一直重新生成它们。
每个类有一个NSCache实例,还是整个应用程序只有一个集中式NSCache更好?

请注意,我并不是说每个对象实例都具有一个缓存,这样做是很困难的。我正在为每个类谈论一个NSCache实例。

最佳答案

这显然取决于,但我通常会为每种类型的缓存对象投票给一个缓存。这样,您可以为每个设置不同的countLimit值,例如指定诸如“保留50个最近渲染的缩略图”,“保留5个最近下载的大图像”,“保留10个最近下载的PDF”之类的内容。

对于确实需要大量计算的任务,我还采用了两层缓存,NSCache以获得最佳性能,并保存到本地文件系统中的临时目录/缓存目录中,以避免在不占用RAM的情况下进行昂贵的下载周期。

关于iphone - 整个应用程序中NSCache的最佳用法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13728146/

10-10 06:39