Попытка понять 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? Что еще это может быть?