comment mettre en cache une page Web entière avec des images dans iOS

Je travaille sur une page de mélange image-text sur iOS. Je sais qu'il est possible pour moi d'utiliser UIWebView pour atteindre l'objective. Mais le problème est, l'user peut avoir besoin de lire la page hors ligne. Pour la partie text, je peux save le code HTML sur le disque et le charger en mode hors ligne. Mais qu'en est-il des images? Est-il possible de mettre les images en cache sur le disque et UIWebView peut-il encore les afficher?

Je vous remercie!

    Le projet ASIHTTPRequest a une class appelée ASIWebPageRequest qui est conçue pour faire exactement ce que vous voulez. Si vous êtes d'accord pour append une dépendance supplémentaire à votre projet, je pense que c'est une bonne solution pour vous: ASIWebPageRequest .

    Sur la page que j'ai aimée ci-dessus, il y a quelques bons exemples de comment l'utiliser, mais je vais inclure l'un d'eux ici pour l'exhaustivité:

     - (IBAction)loadURL:(NSURL *)url { // Assume request is a property of our controller // First, we'll cancel any in-progress page load [[self request] setDelegate:nil]; [[self request] cancel]; [self setRequest:[ASIWebPageRequest requestWithURL:url]]; [[self request] setDelegate:self]; [[self request] setDidFailSelector:@selector(webPageFetchFailed:)]; [[self request] setDidFinishSelector:@selector(webPageFetchSucceeded:)]; // Tell the request to embed external resources directly in the page [[self request] setUrlReplacementMode:ASIReplaceExternalResourcesWithData]; // It is strongly recommended you use a download cache with ASIWebPageRequest // When using a cache, external resources are automatically stored in the cache // and can be pulled from the cache on subsequent page loads [[self request] setDownloadCache:[ASIDownloadCache sharedCache]]; // Ask the download cache for a place to store the cached data // This is the most efficient way for an ASIWebPageRequest to store a web page [[self request] setDownloadDestinationPath: [[ASIDownloadCache sharedCache] pathToStoreCachedResponseDataForRequest:[self request]]]; [[self request] startAsynchronous]; } - (void)webPageFetchFailed:(ASIHTTPRequest *)theRequest { // Obviously you should handle the error properly... NSLog(@"%@",[theRequest error]); } - (void)webPageFetchSucceeded:(ASIHTTPRequest *)theRequest { NSSsortingng *response = [NSSsortingng ssortingngWithContentsOfFile: [theRequest downloadDestinationPath] encoding:[theRequest responseEncoding] error:nil]; // Note we're setting the baseURL to the url of the page we downloaded. This is important! [webView loadHTMLSsortingng:response baseURL:[request url]]; }