6 votes

Vider le cache de manière programmatique dans iOS

Quelqu'un sait-il par hasard comment vider la mémoire cache de l'application iOS que je développe, au moment où elle passe en arrière-plan (applicationDidEnterBackground) ? J'ai fait des recherches sur NSCache, mais je n'arrive toujours pas à comprendre comment je peux récupérer le cache pour le supprimer/le libérer ?

4voto

Alfie Hanssen Points 3090

C'est de ça que tu parles ?

[[NSURLCache sharedURLCache] removeAllCachedResponses];

Vous pouvez également modifier le comportement du cache de vos requêtes pour mettre sélectivement en cache les réponses. Si vous utilisez AFNetworking par hasard, vous pouvez utiliser setCacheResponseBlock . Par exemple, dans un projet, je l'ai configuré pour qu'il renvoie les données suivantes nil pour tous les gros fichiers vidéo et audio. Mais autorisez-le à mettre en cache les fichiers d'images plus petits.

[streamingOperation setCacheResponseBlock:^NSCachedURLResponse *(NSURLConnection *connection, NSCachedURLResponse *cachedResponse) {
    return nil; // Ensures we are not unecessarily caching asset data to Cache.db
}];

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X