Las imágenes no se eliminan del disco después de borrar la memory caching AFNetworking

Traté de borrar el tamaño de la caching, el tamaño de la aplicación no se hace significativamente más pequeño.

El tamaño de mi aplicación es de unos 30 MB más 45 MB para imágenes en caching.

Así es como intenté borrar el caching:

[[NSURLCache shanetworkingURLCache] removeAllCachedResponses]; [[AFImageDownloader defaultURLCache] removeAllCachedResponses]; AFAutoPurgingImageCache *imageCache = [AFImageDownloader defaultInstance].imageCache; [imageCache removeAllImages]; 
  • En mi iPhone 6 iOS10 el tamaño de la aplicación no se hizo más pequeño.
  • En Simulator dentro de los files de la aplicación com.alamofire.imagedownloader/fsCachedData todos los files siguen ahí

Así es como descargo imágenes usando AFNetworking (3.1.0):

 #import "AFImageDownloader.h" [photoImageView setImageWithURLRequest:[NSURLRequest requestWithURL:thumb] placeholderImage:myCachedImage success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) { [self setPhotoImage:image]; } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) { [self setupPlaceholder]; }]; 

Vea lo siguiente:

  1. AFAutoPurgingImageCache *imageCache = [AFImageDownloader defaultInstance].imageCache; El imageCache se almacena en la memory, es inútil hacer [imageCache removeAllImages];
  2. Solo necesita hacer [[AFImageDownloader defaultURLCache] removeAllCachedResponses]; . Es la única API que Apple ofrece para borrar el URLCache .
  3. Encontrará que fsCachedData no se elimina cuando llama a removeAllCachedResponses . Es porque Apple tiene su propio mecanismo para borrar los datos del disco. Tal vez borre los datos del disco cada 7 días mientras busqué, pero no puedo asegurarme.
  4. Creo que es interesante ver cómo los demás usan fsCachedData . ¿Debería borrar la carpeta fsCachedData yo mismo?
  5. Espero que te ayude.

Estamos viendo esto en una de nuestras aplicaciones también. De acuerdo con este http://blog.airsource.co.uk/2014/10/11/nsurlcache-ios8-broken/ , es un error de iOS 8 que Apple habrá corregido hoy en la actualización de iOS 8.1.

Entonces, para responder a su pregunta: No, no debería tener que eliminar el caching usted mismo y, con un poco de suerte, la corrección de Apple realmente limpiará los datos antiguos. Si por alguna razón no, usted debería poder eliminarlo usted mismo sin ningún problema.

He verificado que iOS 8.1 sí corrige el problema. El usuario debe iniciar la aplicación una vez después de la actualización para que la caching se borre sin embargo.

Este código funciona para AFNetworking 3.1:

  [[NSURLCache shanetworkingURLCache] removeAllCachedResponses]; AFImageDownloader *imageDownloader = [AFImageDownloader defaultInstance]; NSURLCache *urlCache = imageDownloader.sessionManager.session.configuration.URLCache; [urlCache removeAllCachedResponses]; [imageDownloader.imageCache removeAllImages];