NSURLCache Problema com a resposta do cache

Estou escrevendo um aplicativo para iPhone, uma das guias é um feed do twitter, estou analisando o twitter xml e colocando-o bem dentro de uma exibição de tabela. Caso não haja conexão com a Internet, gostaria de mostrar os resultados do cache da última vez em que tivemos conexão com a Internet e as tabelas foram atualizadas. Estou usando o NSURLCache para isso da seguinte maneira:

NSURLRequest *theRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:xmlLink]
        cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60];
NSURLCache *sharedCache = [NSURLCache sharedURLCache];

NSCachedURLResponse *response = [sharedCache cachedResponseForRequest:theRequest];

if (response) {
   NSLog(@"Got Response");
} else {
   NSLog(@"Didn't got Response");  
}
 self.objectFeedConnection = [[[NSURLConnection alloc] initWithRequest:theRequest delegate:self startImmediately:YES] autorelease];

Percebo que, pela primeira vez, o NSLog gera "Não obteve resposta", já que é a primeira vez que visita este site (http://www.twitter.com/ ...) Também posso ver que a resposta está sendo armazenada em cache, desde que implementei o método willCacheResponse que está sendo chamado após o lançamento do initWithRequest, da seguinte forma:

 - (NSCachedURLResponse *) connection:(NSURLConnection *)connection 
   willCacheResponse:(NSCachedURLResponse *)cachedResponse
 {
    NSLog(@"willCache Reponse"); 
    NSCachedURLResponse *newCachedResponse = nil;    
    if ([[[[cachedResponse response] URL] scheme] isEqual:@"http"]) {
            newCachedResponse = [[[NSCachedURLResponse alloc]
            initWithResponse:[cachedResponse response]
            data:[cachedResponse data]
            userInfo:nil
            storagePolicy:[cachedResponse storagePolicy]]
            autorelease];
 }
     return newCachedResponse;
}

Na segunda vez que visito este site, posso ver claramente que o NSLog gera "Got Response", o que significa que houve um acerto no cache; portanto, willCacheResponse devenão ser chamado novamente, mas por algum motivo estranho, ele é chamado repetidamente e não extrai as informações do cache; em vez disso, tenta armazená-las novamente.

Alguma idéia do que está causando esse problema?

Obrigado!

questionAnswers(3)

yourAnswerToTheQuestion