更改 NSURLCache 内存和磁盘容量不起作用
Posted
技术标签:
【中文标题】更改 NSURLCache 内存和磁盘容量不起作用【英文标题】:Changing NSURLCache memory and disk capacity doesn't work 【发布时间】:2015-10-08 14:59:05 【问题描述】:我正在使用配置为使用共享NSURLCache
的NSURLSession
。当应用程序进出后台时,我正在尝试更改缓存的大小。这个想法是在应用进入后台时减少内存和磁盘容量,并在应用进入前台时恢复原始容量。
对于NSURLCache
的memoryCapacity
和diskCapacity
属性,文档说:
在进行此调用时,[in-memory|on-disk] 缓存将截断其 如有必要,按给定大小调整内容。
但是,当我设置这些属性时,即使我设置的值(远)低于currentMemoryUsage
或currentDiskUsage
,缓存大小也不会改变。我也可以很容易地验证应用程序使用的内存没有改变,磁盘缓存的大小也没有改变。
看来NSURLCache
只使用了初始化时设置的值,并没有考虑到后续的变化。不过,为 memoryCapacity
和 diskCapacity
调用 getter 确实会返回我的新值。
我是否遗漏了什么或做错了什么,或者这是NSURLCache
的错误?
【问题讨论】:
你找到解决方案了吗,因为看起来你是对的。我今天遇到了同样的问题。 @GeorgiBoyadzhiev 对不起,我从来没有这样做过。如果我没记错的话,我最终选择了一个对两者都有效的平均值...... 我的测试表明,即使我初始化一个容量为 XX 的新缓存,缓存也不符合大小限制,并且会变大几倍。例如,对于 32MB 磁盘容量,我得到大小为 130-140 MB 的缓存,这让我很沮丧,因为我希望能够正确管理它。感谢您的快速回复! 【参考方案1】:可能是文档中的错误。
【讨论】:
以上是关于更改 NSURLCache 内存和磁盘容量不起作用的主要内容,如果未能解决你的问题,请参考以下文章