Premièrement: J'ai implémenté un mécanisme de défilement assez complexe pour les images, qui permet de faire défiler quelques centaines de milliers (théoriquement) dans une seule vue de défilement. Ceci est fait en préchargeant de petites portions lors du défilement, tout en réutilisant tous les UIImageViews. Actuellement, tout ce que je fais est d'assigner de nouveaux objets UIImage créés à ces UIImageViews réutilisés.UIImageView et UIImage: Comment puis-je optimiser les performances?
Il peut être préférable de réutiliser ces objets UIImage en leur transmettant de nouvelles données d'image.
Maintenant, le problème est, que j'utilise actuellement la méthode -imageNamed:. La documentation dit, qu'il met en cache l'image.
Problèmes que je vois dans ce cas avec -imageNamed: Lorsque l'image est déplacée hors de la plage de préchargement, elle n'est plus nécessaire. Ce serait mauvais si elle essaie de mettre en cache des milliers d'images pendant que l'utilisateur fait défiler et défile et fait défiler. Et si je trouvais un moyen d'insérer de nouvelles données d'image dans l'objet UIImage pour le réutiliser, que se passera-t-il avec l'ancienne image qui a été mise en cache?
Donc, il y a une méthode à gauche, qui semble intéressante: -initWithContentsOfFile:
Cela ne cache pas l'image. Et il n'utilise pas -autorelease, ce qui est bien dans ce cas.
Pensez-vous que dans ce cas, il serait préférable d'utiliser -initWithContentsOfFile:?