Проблема с кэшированием изображений в iPhone - PullRequest
0 голосов
/ 11 августа 2009

Я кратко описал работу моего приложения, чтобы понять мой Вопрос.

У меня есть приложение, в котором более 1600 изображений хранятся в iPhone-Application-Document Directory. У меня есть TableView на главном экране следующим образом. => Первая категория => Вторая категория => Третья категория

=> если пользователь выбирает первую категорию, изображения загружаются в мой ScrollView
Нравится
| -------------------- Контроллер просмотра страниц ----------------- |
| Первое изображение | Второе изображение | Третье изображение | Четвертое изображение |
| -------------------- Контроллер просмотра страниц ----------------- |

После выбора категории пользователь может видеть: первое изображение из контроллера страницы и другие элементы уже загружены в элемент управления просмотром страницы, пользователь должен просто прокрутить влево - вправо, чтобы увидеть другие изображения, но одновременно пользователь может видеть только одно изображение (это задача управления просмотром страницы)

Теперь каждая страница имеет вид изображения, размещенный в виде прокрутки (чтобы пользователь мог уменьшить масштаб)

Все это прекрасно работает,

Проблема возникает в следующей ситуации.
=> После просмотра изображений первой категории
=> Пользователь нажимает Назад
=> Теперь пользователь выбирает вторую категорию для просмотра всех изображений второй категории, загружаемых в элемент управления просмотром страницы.

iPhone закрывает приложение в данной ситуации. (поскольку он не может загрузить все изображения в элемент управления просмотром страницы) ( каждое изображение имеет размер не менее 4 МБ приблизительно .)

iPhone симулятор отлично работает в описанной ситуации, но iPhone не . iPhone закрывает приложение в данной ситуации.

Я думаю, что в iPhone может быть проблема с кэшированием памяти.

Вопрос в том, как решить эту проблему?

Заранее спасибо за помощь.

1 Ответ

1 голос
/ 11 августа 2009

У вас проблемы с памятью, вам нужно лучше управлять своими снимками, освобождать их из памяти, когда они не используются. Для просмотра в режиме прокрутки не загружайте все изображения одновременно, загружайте не более трех, это все, что вам нужно, поэтому я говорю три, потому что у вас будет что-то подобное

PIC ActivePic Pic или же ActivePic Pic - здесь вам нужно только 2

Вы загружаете изображение с каждой стороны активного изображения, поэтому при прокрутке пользователя отсечение не происходит. Если вы не находитесь в режиме прокрутки, обязательно освободите все изображения, если не исчерпаете память, как у вас было. Посмотрите на пример проекта PageControl здесь http://developer.apple.com/iphone/library/samplecode/PageControl/, здесь они управляют представлениями прокрутки так же, как описано выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...