J'utilise Quel est le meilleur moyen de mettre en œuvre cela? P> ASIHTTPQUESTS CODE> et un
asinetworkQueue code> dans une application iPhone pour récupérer certains fichiers XML 100K et beaucoup de vignettes à partir d'un service Web. J'aimerais mettre en cache les demandes dans le style de
nsurlcache code>. ASI ne semble pas supporter la mise en cache tel quel et j'ai examiné le code et cela tombe sur c pour créer les demandes, l'insertion de la couche
nsurlcache code> semblait difficile. P>
5 Réponses :
NsurlConnection est en faveur de la mise en cache dans le style de Nsurlcache, et cela fait beaucoup de travail pour vous dans les coulisses. Il a même une belle méthode de déléguée qui vous permettra de manipuler la cacheResponse: p>
- (NSCACHEDURLResponse *) Connexion: (NsurlConnection *) Connexion WillCacheresponse: (NSCachedurLResponse *) CacheResponse Code> P>
Vous pouvez fournir votre propre mise en cache avant de tomber dans le code ASI. P>
Enveloppez votre code ASI dans une classe qui a une méthode: p>
Cette méthode vérifie d'abord une nsdiction interne pour voir s'il a une clé présent pour l'URL spécifiée. Si tel est le cas, il renvoie l'objet stocké avec la clé. P>
Si ce n'est pas le cas, il effectue l'asiequest normal. Lorsque la demande est reçue du serveur, elle le stocke en tant que chaîne dans votre dictionnaire avec la clé de l'URL. P>
Bien sûr, vous devrez traiter des demandes asynchrones et expirer d'anciennes demandes avec soin. P> - (NSString *) GetContentFor: (nsurl *) URL code> p>
Quelqu'un qui demande comment elle peut faire cela avec ASIHTTPQUEST directement peut être intéressé par ce Branche du code qui ajoute la prise en charge de cette fonctionnalité en option. P>
ASIHTTPEQUEST prend maintenant en charge la mise en cache - Découvrez AsidownloadCache Ie.
[ASIHTTPRequest setDefaultCache:[ASIDownloadCache sharedCache]]
Essayez ceci, cela fonctionne pour moi.