J'ai une application iPhone assez intensive en images, et je cherche à stocker des images téléchargées à distance localement dans le répertoire sandbox tmp de l'application pour éviter les requêtes réseau inutiles. La taille totale des fichiers stockés dans les répertoires d'une application est-elle limitée ou l'application doit-elle gérer cela? Comment l'application déterminerait-elle la taille des fichiers dans le répertoire tmp?Gestion de l'application iPhone sandbox tmp taille de répertoire pour la mise en cache des images
De plus, si l'application doit gérer la taille du cache, j'aimerais mettre en place une sorte de politique de cache pour déterminer quels fichiers seront invalidés. Comment ferais-je cela? Si je veux implémenter une politique de mise en cache LRU de base - invalider les fichiers qui ont été utilisés moins récemment - il me semble que je devrais stocker le nombre d'accès pour chaque image et stocker cela sur le disque, ce qui semble plutôt funky. Je suppose qu'une politique de gestion de la taille facile serait simplement effacer complètement le cache chaque fois que l'application se termine.
En outre, quelle est la différence entre l'utilisation du répertoire NSCachesDirectory et NSTemporaryDirectory? Les docs Apple mentionnent les deux, mais ne parlez pas de celui à utiliser pour quel type de fichiers. Je pense que NSTemporaryDirectory ressemble plus à un répertoire Unix/var/tmp et est utilisé pour des données éphémères qui peuvent être effacées à tout moment. Il me semble que NSCachesDirectory est plus approprié pour stocker des images mises en cache, car les fichiers pourraient être nécessaires pour plusieurs cycles de vie d'application.
Existe-t-il une raison pour laquelle NSURLCache ne correspond pas à la facture? Je suis moi-même confronté à des problèmes de mise en cache d'image et j'aimerais savoir à quel point NSURLCache est utile en tant que solution qui ne nécessite pas une base de données personnalisée LRU ou LRU-ish complète – Yetanotherjosh