2009-08-11 6 views
0

J'ai brièvement décrit le fonctionnement de mon application pour comprendre ma question.Problème de cache d'image dans l'iPhone

J'ai une application, dans laquelle plus de 1600 images sont stockées dans iPhone-Application-Document Directory. J'ai une tableView sur l'écran principal comme suit. => Première catégorie => Deuxième Catégorie => Troisième catégorie

=> si l'utilisateur sélectionne Première catégorie, les images sont chargées dans mon ScrollView
Comme
| ----------- --------- Page View Controller ----------------- |
| Première image | Deuxième image | Troisième image | Quatrième image |
| -------------------- Contrôleur de vue de page ----------------- | Après la sélection de la catégorie, l'utilisateur peut voir - la première image de la page vue contrôleur & autres sont déjà chargés dans la page Voir le contrôle, l'utilisateur doit simplement faire défiler vers la gauche - droite pour voir les autres images, mais à la fois l'utilisateur peut voir une seule image. (qui est la tâche de contrôle de la page vue)

maintenant, chaque page a une vue image placée en mode défilement (si l'utilisateur peut zoomer sur)

Toutes ces choses fonctionnent parfaitement,

Problème se produit dans la situation suivante.
=>Après avoir vu les premières images de la catégorie
=> presse utilisateur Retour
=> Maintenant, l'utilisateur sélectionne deuxième catégorie pour voir toutes les images de deuxième catégorie sont chargées en vue de la page controll.

L'iPhone met fin à l'application dans la situation donnée. (Car il ne peut pas charger toutes les images pour le contrôle de la page vue) (chaque image est d'au-moins 4 Mo environ.)

simulateur iPhone fonctionne parfaitement dans la situation décrite, mais iPhone n » t. iPhone termine l'application dans une situation donnée.

Je pense qu'il peut y avoir un problème de mise en mémoire cache dans l'iPhone.

La question est de savoir comment résoudre ce problème?

Merci d'avance de votre aide.

Répondre

1

Vous rencontrez un problème de mémoire, vous devez mieux gérer vos images, les libérer de la mémoire lorsqu'il n'est pas utilisé.Pour votre défilante Ne chargez toutes les images à la fois, la charge au plus trois, cela est tout ce que vous avez besoin, la raison pour laquelle je dis trois est parce que vous aurez quelque chose comme ceci

PIC ActivePic Pic ou ActivePic Pic - ici vous ne Vous avez besoin de 2

Vous chargez l'image de chaque côté de l'image active de sorte que lorsque l'utilisateur fait défiler l'écrêtage ne se produit pas. Lorsque vous n'êtes pas dans la vue défilement assurez-vous de libérer toutes les images si vous n'avez pas de mémoire comme vous l'avez expiriencing. Regardez le projet exemple PageControl ici http://developer.apple.com/iphone/library/samplecode/PageControl/, ici ils gèrent les vues de la vue défilement de la même manière que décrit ci-dessus.

+0

@Daniel - désolé, je change un peu ma question. –

+0

Quelles sont les r esolutions sur vos photos? – Daniel

+1

Vous utilisez toujours la mémoire dont vous avez besoin d'identifier pourquoi, vous pourriez ne pas diffuser les autres images correctement, ou vous utilisez des images dont la résolution est trop élevée, vous devriez les réduire à 320x480 ou 480x320 si ils ne sont pas déjà là, si elles sont quelque chose comme 1600x1400 qui va planter votre application – Daniel