Cómo usar NSCachedURLResponse

Estoy tratando de save diferentes sets de datos que se me devuelven a través de los methods de NSURLConnection.

este es mi método connectionDidFinishLoading, que actualmente está pasando cada lote por separado a un analizador. Como lado, no tengo una política de caching NSURLMutableRequest establecida en NSURLRequestUseProtocolCachePolicy

- (void)connectionDidFinishLoading:(NSURLConnection *)connection { if ([methodName isEqualToString:@"GetRub"]) { [engineResponses GetRub:receivedData]; } else if ([methodName isEqualToString:@"GetMag"]) { [engineResponses GetMag:receivedData]; } else if ([methodName isEqualToString:@"GetSub"]) { [engineResponses GetSub:receivedData]; } } 

Re-Cap: el método anterior recibe el set de datos solicitado y luego, dependiendo de la request realizada, pasará esos datos al método correcto en la class del analizador.

GetRub, GetMag, GetSub.

Lo que quiero tratar de hacer aquí es utilizar el método NSURLCacheResponse para capturar los datos como lo he hecho anteriormente, pero luego verifico si hay un caching posible, si hay uno, luego pasaré los datos almacenados en caching al analizador que normalmente se encargaría de por el método listdo anteriormente.

A continuación se muestra lo que he intentado para mi caching. En lugar de tener connectionDidFinishLoading recibiendo los datos .. Creo que quiero este método para hacerlo, así que intentaré llamar al método engineResponses desde dentro de este método una vez que se haya resuelto el caching.

 - (NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse { if ([methodName isEqualToString:@"GetRub"]) { NSCachedURLResponse *ICRub = cachedResponse; ICRub = nil; NSDictionary *newUserInfo; newUserInfo = [NSDictionary dictionaryWithObject:[NSDate date] forKey:@"Cached Date"]; ICRub = [[NSCachedURLResponse alloc] initWithResponse:[cachedResponse response] data:[cachedResponse data] userInfo:newUserInfo storagePolicy:[cachedResponse storagePolicy]]; } //other caches below here. 

Así que eso es lo que intenté hacer, pero actualmente no funciona, nunca llega a este método. También no sé cómo enviar los datos almacenados en caching a mi class de analizador … esos son mis problemas principales, el otro problema es ¿crees que esta es una muy buena solución?

cualquier ayuda sería muy apreciada 🙂