【发布时间】:2010-09-29 03:24:38
【问题描述】:
在 iPhone 上,我使用 NSURLRequest 对一大块数据执行 HTTP 请求。对象分配高峰,我相应地分配数据。当我完成数据后,我会相应地释放它 - 但是仪器没有显示任何数据已被释放!
我的理论是默认情况下 HTTP 请求会被缓存,但是 - 我不希望我的 iPhone 应用程序缓存这些数据。
有没有办法在请求后清除此缓存或首先防止任何数据被缓存?
我已经尝试使用所有缓存策略,如下所示:
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
theRequest.cachePolicy = NSURLRequestReloadIgnoringLocalCacheData;
但似乎没有什么可以释放内存!
【问题讨论】:
-
会不会与缓存无关?您是否尝试过检查数据以查看应该重新加载的数据是否实际上是旧数据?也许你的韭菜来自其他地方。你如何初始化和释放 NSURLRequests?这可能有助于诊断问题。
-
仅供参考 - 如果你想通过暴力删除文件,这里有示例代码:salesforce.stackexchange.com/a/69736
标签: cocoa-touch caching