Попытка понять NSURLCache и почему я продолжаю потреблять память

Мое приложение выполняет много запросов URL (вызывая веб-службу) в цикле в течение длительного периода времени. Когда я смотрю приложение в инструменте 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], Я ожидал, что это будет очищать кеш после каждого обращения к веб-сервису и освобождать всю память, используемую для целей кэширования URL. Неудачно.

Должно быть, я что-то делаю не так, но не могу найти это. Я лаю не на том дереве, думая, что это кеширование URL? Что еще это может быть?

0 ответов

Другие вопросы по тегам