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. caché de autenticación HTTP
- 7. Prevenir caché de IE
- 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. ¿UIImageView imágenes de caché?
- 18. Akamai actualización de caché
- 19. Caché de consultas MySQL
- 20. Caché interna de DbContext (?)
- 21. Caché de rieles caduque
- 22. Deshabilitar Caché de ASP.net
- 23. caché de predicados
- 24. Caché genérica de objetos
- 25. Administrar caché de MapView
- 26. Caché de autenticación mercurial?
- 27. Caché de archivos Python
- 28. Función de caché resultados
- 29. JSF: solicitud inicial y solicitud de devolución de datos?
- 30. problema de caché en actionscript URLLoader
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