Je rencontre des problèmes avec la mise en cache des URLResponses sur le disque. Je veux cela parce que les données que je télécharge doivent être rechargées quand la balise expires dans l'en-tête http est remplie, pas plus tôt. En outre, je souhaite que les utilisateurs d'iPod touch puissent télécharger les données une fois en ligne, puis les utiliser hors connexion.iphone: NSURLCache sur le disque
je fais ce qui fonctionne très bien pour les choses de mise en cache en mémoire, mais échoue lorsque relançant l'application:
NSURLRequest* menuRequest = [NSURLRequest requestWithURL:mensaURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval: 10];
NSCachedURLResponse* cachedMenuResponse = [[NSURLCache sharedURLCache] cachedResponseForRequest:menuRequest];
if (cachedMenuResponse) {
// received data is a member of that class to which the asynchronous
// download writes and which is then being used in updateDataFromDownload
// to retrieve my data structure from the download.
self.receivedData = [NSMutableData dataWithData:[cachedMenuResponse data]];
[self updateDataFromDownload];
NSLog(@"using data from cache");
} else {
NSLog(@"opening connection");
[NSURLConnection connectionWithRequest:menuRequest delegate:self];
}
la documentation dit qu'il fait, ou du moins implique que lorsque des méthodes permettant de définir la capacité de disque utilisé par le cache. – SmokeDispenser
Oui, je sais. Je pense toujours que ce n'est pas supporté. Voir https://devforums.apple.com/message/182443#182443 et http://github.com/rs/SDURLCache, par exemple. –
Merci pour cela. SDURLCache offre un moyen facile de faire exactement ce que je veux :) – SmokeDispenser