2013-05-14 1 views
0

Lorsque je lance une requête avec la règle NSURLRequestReturnCacheDataElseLoad, j'espère obtenir le résultat du NSURLCache le cas échéant, quel que soit son âge. Cependant, le système essaie toujours d'atteindre le serveur vers lequel pointe la requête et renvoie une erreur si le serveur ne répond pas. J'utilise la catégorie UIImageViewAFNetworking pour la demande.NSURLCache non utilisé par NSURLConnection/AFNetworkingOperation

NSURLRequest* request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60.0]; 
__weak __typeof(self) weakSelf = self; 
NSLog(@"[%@] %@", request.URL, [[NSURLCache sharedURLCache] cachedResponseForRequest:request]); // this returns an instance of NSCachedURLResponse! 
[self setImageWithURLRequest:request placeholderImage:nil success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) { 
    __typeof(weakSelf) self = weakSelf; 
    self.image = image; 
} failure:NULL]; 

Ce ne fixerons pas l'image même si la demande NSURLCache va directement retourner un NSCachedURLResponse valide.

L'application est en cours d'exécution sur iOS6 seulement, donc il devrait y avoir aucun problème avec le cache sur disque autant que je sache ?!

Toute aide est appréciée! Merci!

Répondre

1

Ceci est un problème connu. Reportez-vous à cette discussion sur AFNetworking github page pour une solution de contournement.

+0

Ok, merci pour l'info! –