ОБНОВЛЕНИЕ: я исправил утечку памяти.Мне по-прежнему очень любопытно услышать, каковы лучшие рекомендации для приложения, предназначенного для сбора потенциально бесконечного потока данных изображения, чтобы сбалансировать производительность (пользователь видит изображение без задержки загрузки) и использование памяти.Мне также любопытно, может ли кто-нибудь говорить с 1) PFFile - это просто путь, используемый для получения данных в потоке, или каждый элемент PFFile занимает значительное место?2) Чтобы освободить пространство после просмотра изображения, будет ли установка изображения = ноль освободить пространство?
РЕДАКТИРОВАННОЕ ОРИГИНАЛЬНОЕ ПОСТ: есть ли лучшая практика для приложений с большими изображениями (например, Facebook или Instagram), где пользователи могут непрерывно переключаться между изображениями.Я заметил, что использование памяти постоянно увеличивается с использованием моего текущего подхода.
В настоящее время у меня есть класс сервера разбора для «Изображения», где фактическое изображение - это PFFile.Я выбираю * из этого и считываю каждую строку в массив структуры данных клиента, содержащей поля «Изображения», одним из которых является PFFile.Затем я сохраняю переменную «Текущее положение», и каждый раз, когда пользователь нажимает «Далее», я добавляю один, преобразую PFFile в текущей позиции в UIImage, устанавливаю его в элементе массива и обновляю представление изображения (таким образом, когда они нажимают назад, я не надеваюне нужно повторно обрабатывать PFFile. При тестировании моего приложения я быстро увидел скачок использования памяти до 2 ГБ, поскольку просмотр каждого изображения означал, что каждый UIImage был сохранен в массиве. Я определенно думаю, что не могу удержать каждый UIImage, поскольку пользователиможет посмотреть на все изображения, и у меня не хватит памяти.
Я подозреваю, что вместо сохранения каждого UIImage после преобразования данных мне нужно выпустить предыдущие. В общем, я был бы признателен за любые советы или указания длячто я могу научить себя ответственному управлению данными, когда я позволяю пользователям прокручивать неопределенное количество изображений.