试图了解NSURLCache以及为什么我一直在消耗内存

时间:2013-10-07 14:18:32

标签: ios memory-management nsurlconnection nsurlrequest nsurlcache

我的应用程序在很长一段时间内在循环中发出大量URL请求(调用Web服务)。当我在Allocations工具中观看应用程序时,我发现在该循环运行期间内存消耗持续增加。出于测试目的,我将循环减少到以下,表现出相同的行为:

NSURL *myUrl = [[NSURL alloc] initWithString:@"http://my.server.com/webservice"];
NSURLRequest request = [[NSURLRequest alloc] initWithURL:myUrl cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:30];
while (1)
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    NSURLResponse *response = nil;
    NSError *error = nil;

    NSData *rawResponse = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

    [[NSURLCache sharedURLCache] removeAllCachedResponses];
    [pool release];
}

当我第一次发现问题时,我认为这是因为我的URL请求/响应正在被缓存。就在那时我添加了[[NSURLCache sharedURLCache] removeAllCachedResponses]。我希望在每次调用Web服务后清除缓存并释放用于URL缓存的任何内存。没有运气。

我一定是做错了什么,但我找不到。在我认为这是URL缓存时,我是在咆哮错误的树吗?还有什么呢?

0 个答案:

没有答案