De grandes quantités de memory allouées sur setImage:

J'ai un UIImageView qui a été créé par programmation ( [[UIImageView alloc] init] ). La memory de l'application rest en memory jusqu'à ce que la méthode setImage: soit appelée. Des pensées?

Je suppose que vous définissez votre image à votre vue d'image en utilisant quelque chose comme ceci:

 [imgV setImage:[UIImage imageNamed:@"yourImg.png"]] 

Le problème avec l'utilisation de cela est que l'application met ces images en cache . Si vous souhaitez éviter la caching d'images, utilisez imageWithContentsOfFile: :

 [imgV setImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"yourImg.png" ofType:nil]]]; 

Veillez également à définir votre image sur nil lorsque vous avez fini de l'utiliser:

 [imgV setImage:nil]; 

J'ai eu des problèmes avec ceci dans le passé, et voici un peu de text d'un email que j'ai reçu d'Apple en réponse à un TSI:

Il existe de nombreux cas où vous utilisez l'API UIImage + imageNamed: pour charger des images, mais vous devez savoir que imageNamed met en cache ses données d'image même après la libération de l'object UIImage renvoyé. Remplacer des appels à imageNamed avec -imageWithContentsOfFile: comme indiqué ci-dessous est un moyen d'assurer un contrôle total sur datatables d'image de votre application en memory