0

我的应用程序在很长一段时间内循环发出大量 URL 请求(调用 Web 服务)。当我在分配工具中查看应用程序时,我发现在该循环运行期间内存消耗不断增加。出于测试目的,我将循环简化为以下内容,它表现出相同的行为:

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 缓存,是不是在叫错树?还能是什么?

4

0 回答 0