Я изо всех сил пытался выяснить, почему мое приложение продолжает увеличиваться в памяти, когда я перемещаюсь по всему приложению.Имеет ли кэш-память iOS по умолчанию в памяти? (RAM)
При выходе из представления, я не забудьте проверить, не был ли инициализирован контроллер, и память, которая была добавлена во время просмотра. Я использовал инструмент инструментов, и он не обнаружил никаких утечек, и удержание/повторный ввод в просмотр неоднократно не влияет на используемую память.
Это заставляет меня думать, что iOS по умолчанию кэширует UIImage
в память и освобождает память только в том случае, если устройство нуждается в ней.
Вид, с которым я работаю, - это UICollectionView
, который показывает пользователю галерею фотографий, загруженных на мой сервер. В настоящее время у меня это ограничение на 10 изображений на пользователя, но, как вы можете себе представить, есть ли много изображений, и это может увеличить память довольно быстро.
Нужно ли беспокоиться об этой памяти? Является ли поведение по умолчанию для изображений оставаться в памяти, пока устройству не потребуется освободить место? Я не хочу подавать в магазин приложений и отклоняться за плохое управление памятью.
EDIT: Также справедливо отметить, что я создаю изображение, используя конструктор UIImage(data: NSData)
.
Когда вы сказали «оставить вид», как вы могли убедиться, что этот контроллер деинициализирован? Когда вы покидаете это представление, убедитесь, что весь массив и сильное свойство будут выпущены. iOS обрабатывает UI с помощью UIKit, а наиболее заметные компоненты сохраняются в памяти. UIKit имеет механизм поддержки автоматического выпуска компонентов, которые будут невидимыми, и освободить его из памяти и подготовиться к другому. –