Dans mon application, j'utilise beaucoup d'images basées sur le constructeur d'interface. Le problème avec ceci est qu'il utilise de grandes quantités de mémoire car interface builder le cache beaucoup aimé "imageNamed" donc j'ai commencé à supprimer l'image de imageViews dans le constructeur d'interface et à les ajouter une fois que la vue commence à utiliser "imageWithContentsOfFile". Après plusieurs heures, j'ai fait peu de progrès car j'ai littéralement des centaines d'images. Je me demande simplement s'il existe une façon plus directe de faire cela?Problèmes avec les images sur l'iPhone
0
A
Répondre
1
Oui, ne le faites pas. UIImage
et l'ensemble de l'activité XIB retarder le chargement jusqu'à ce que les choses sont nécessaires, ainsi que déposer des images en cache lorsque cela est possible et nécessaire. Vous pouvez même voir cela se produire dans Instruments. Il permet de diviser votre conception sur plusieurs xibs, de sorte qu'ils peuvent être chargés en cas de besoin. Cependant, ce que vous peut est de faire en sorte que vous n'échelonniez pas les images mais les affichiez 1: 1, et que vous les sauvegardiez avec la qualité acceptable la plus basse. Pour les photos, prenez JPEG. Pour les autres images, prenez le format PNG.
Bizarrement, il ne semble pas vraiment le faire, du moins pas bien. Dans ma méthode dealloc, je libère tous les objets définis dans l'en-tête, mais la quantité de mémoire reste plus ou moins la même en raison de la quantité d'images traitées. Cela ne se produit que sur iOS 4, si je le lance sur iOS 3 alors ça va. – Jeff
Mais se bloque-t-il dans des conditions de faible mémoire? – mvds
Oui, j'ai surveillé son utilisation de la mémoire dans les instruments aussi. – Jeff