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 ?
Réponse
Trop de publicités?
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
}];