2009-08-11 6 views
0

Ich habe kurz die Funktionsweise meiner Anwendung beschrieben, um meine Frage zu verstehen.Image Caching Problem in iPhone

Ich habe eine Anwendung, in der mehr als 1600 Bilder mit in iPhone-Application-Document Directory gespeichert sind. Ich habe eine Tabelle auf dem Hauptbildschirm wie folgt. => Erste Kategorie => Zweite Kategorie => Third Kategorie

=> wenn Benutzer wählt Erste Kategorie, werden die Bilder geladen in meiner Scroll
Wie
| ----------- --------- Page View Controller ----------------- |
| Erstes Bild | Zweites Bild | Drittes Bild | Viertes Bild |
| -------------------- Page View Controller ----------------- |

Nach Kategorie auswählen, können Benutzer sehen - Erstes Bild Aus der Seitenansicht-Controller & andere in Seite View Control geladen werden bereits, hat Benutzer navigieren Sie nach links, um nur - rechts die anderen Bilder zu sehen, aber zu einer Zeit, kann der Benutzer sehen nur ein Bild. (das ist die Aufgabe der Seitenansicht Steuerung)

Jetzt eine Bildansicht Platziert in Scroll-Ansicht Jede Seite hat (so kann der Benutzer in auszoomen) Perfekt

All diese Dinge funktionieren,

Problem tritt in folgender Situation auf.
=>Nach erster Kategorie ‚s Bilder beobachten
=> Benutzer drücken Zurück
=> Jetzt Benutzer zweite Kategorie wählt alle Bilder zweiter Kategorie Ansicht in Seitenansicht controll geladen werden.

iPhone beendet die Anwendung in der gegebenen Situation. (Da es nicht alle Bilder auf Seite Ansichtssteuerung laden kann) (jedes Bild ist von at-dest 4 MB etwa.)

iPhone Simulator funktioniert perfekt in geschilderte Situation aber iPhone doesn‘ t. iPhone beendet die Anwendung in der gegebenen Situation.

Ich denke, es könnte Speicher-Caching-Problem in iPhone sein.

Frage ist, wie man dieses Problem löst?

Vielen Dank im Voraus für Ihre Hilfe.

Antwort

1

Sie haben ein Speicherproblem, Sie müssen Ihre Bilder besser verwalten, sie aus dem Speicher freigeben, wenn sie nicht verwendet werden.Für die Bildlaufansicht nicht alle relevanten Bilder laden auf einmal, Last höchstens drei, das ist alles, was Sie brauchen, ich der Grund, drei sagen, weil youll so etwas wie dieses

PIC ActivePic Pic oder ActivePic Pic haben - hier nur Sie Notwendigkeit 2

Sie laden Bild auf jeder Seite des aktiven Bildes, so dass wenn der Benutzer scrollt Clipping nicht auftritt. Wenn Sie sich nicht in der Bildlaufansicht befinden, stellen Sie sicher, dass Sie alle Bilder freigeben, wenn nicht der gesamte Speicher ausgelaufen ist, wie Sie es bereits getan haben. Sehen Sie sich das Beispielprojekt PageControl hier http://developer.apple.com/iphone/library/samplecode/PageControl/ an, hier verwalten sie die Ansichten der Bildlaufansicht in der oben beschriebenen Weise.

+0

@Daniel - Entschuldigung, ich ändere meine Frage ein wenig. –

+0

Was sind die Lösungen für Ihre Bilder? – Daniel

+1

Sie arbeiten immer noch mit Speicher, den Sie benötigen, um den Grund dafür zu finden, dass Sie die anderen Bilder nicht richtig freigeben oder Bilder mit zu hoher Auflösung verwenden. Sie sollten sie auf 320x480 oder 480x320 verkleinern sie sind nicht schon das, wenn sie so etwas wie 1600x1400 sind, die deine App craften werden – Daniel