Estoy usando NSURLRequest con CachePolicy para descargar un plist en NSData. Cuando cambio el contenido de mi lista, mi aplicación está ignorando esto y todavía presenta el contenido que está en la memoria caché. ¿Cuánto tiempo persiste el caché? De ser así, ¿existe una opción para indicar cuánto tiempo persisten los datos de la memoria caché? ¿Hay alguna manera de verificar en NSURLRequest si los datos en el servidor son más nuevos que la caché carga los datos del servidor o si es igual a la caché usa la caché?NSURLPolítica de caché de solicitud
5
A
Respuesta
2
Eche un vistazo a Controlling Response Caching en el URLLoadingSystem docs.
Usted puede añadir su propia fecha en los métodos de delegado
-(NSCachedURLResponse *)connection:(NSURLConnection *)connection
willCacheResponse:(NSCachedURLResponse *)cachedResponse
Mucho más sencillo con el sistema de almacenamiento en caché es ASIHTTPRequest. Recomiendo usar este sistema de carga de URL.
A partir de los documentos de manzana:
El ejemplo de la Lista 6 impide el almacenamiento en caché de las respuestas https. Es también agrega la fecha actual al diccionario de información del usuario para las respuestas que están en caché.
-(NSCachedURLResponse *)connection:(NSURLConnection *)connection
willCacheResponse:(NSCachedURLResponse *)cachedResponse
{
NSCachedURLResponse *newCachedResponse = cachedResponse;
if ([[[[cachedResponse response] URL] scheme] isEqual:@"https"]) {
newCachedResponse = nil;
} else {
NSDictionary *newUserInfo;
newUserInfo = [NSDictionary dictionaryWithObject:[NSCalendarDate date]
forKey:@"Cached Date"];
newCachedResponse = [[[NSCachedURLResponse alloc]
initWithResponse:[cachedResponse response]
data:[cachedResponse data]
userInfo:newUserInfo
storagePolicy:[cachedResponse storagePolicy]]
autorelease];
}
return newCachedResponse;
}
Cuestiones relacionadas
- 1. solicitud de caché de memcached?
- 2. Chrome está almacenando en caché una solicitud HTTP PUT
- 3. Cómo hacer caché por solicitud http en ASP.NET 3.5
- 4. Solicitudes AJAX de caché
- 5. caché de ventana jsdom
- 6. Prevenir caché de IE
- 7. caché de autenticación HTTP
- 8. .htaccess solicitud de contraseña
- 9. Solicitud de acceso.sesión de backend.get_user
- 10. tecnología de memoria caché distribuida
- 11. jQuery Ajax Solicitud dentro de Ajax Solicitud
- 12. Estrategia de almacenamiento en caché, Caché de resultados frente a caché de datos o ambos?
- 13. Caché de vista de preconstrucción en Rails
- 14. Caché de memoria o diccionario concurrente?
- 15. Detección de caché del navegador por jQuery
- 16. Prevenir datos de caché de Android WebView
- 17. Caché interna de DbContext (?)
- 18. caché de predicados
- 19. Administrar caché de MapView
- 20. Akamai actualización de caché
- 21. Caché genérica de objetos
- 22. Caché de autenticación mercurial?
- 23. Deshabilitar Caché de ASP.net
- 24. Caché de rieles caduque
- 25. Caché de consultas MySQL
- 26. Función de caché resultados
- 27. ¿UIImageView imágenes de caché?
- 28. Caché de archivos Python
- 29. problema de caché en actionscript URLLoader
- 30. JSF: solicitud inicial y solicitud de devolución de datos?
Thanks.I establece ahora a cero. Pero, ¿cómo hacer que la memoria caché se mantenga durante cierto tiempo o verificar si hay datos más nuevos disponibles del servidor? – halloway4b
He actualizado mi respuesta –
iOS 6.1 SDK documentación indica lo siguiente: conexión: willCacheResponse: enviado delante de la conexión almacena una respuesta en caché en la memoria caché, para dar el delegado una oportunidad para alterarlo. (obligatorio) (Disponible en iOS 2.0 a iOS 4.3) – cynistersix