У меня есть UIImageView, который был создан программно ([[UIImageView alloc] init]
). Память приложения остается в памяти до тех пор, пока не будет вызван метод setImage:
. Есть предположения?Большие объемы памяти выделены на setImage:
ответ
Я предполагаю, что вы настраиваете изображение на ваш взгляд изображения, используя что-то вроде этого:
[imgV setImage:[UIImage imageNamed:@"yourImg.png"]]
Проблемы с использованием, что является то, что приложение кэшей этих изображений. Если вы хотите, чтобы избежать кэширования изображений используйте imageWithContentsOfFile:
:
[imgV setImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"yourImg.png" ofType:nil]]];
Кроме того, убедитесь, чтобы установить изображение в nil
, когда вы закончите его использования:
[imgV setImage:nil];
Я имел проблемы с это в прошлом, а вот какой-нибудь текст из электронной почте я получил обратно от Apple, в ответ на ТСИ:
Есть немало случаев, когда вы используете API UIImage + ImageName d: загрузить изображения, но вы должны знать, что imageNamed кэширует свои данные изображения даже после того, как возвращенный объект UIImage отправлен . Замена вызовов imageNamed с -imageWithContentsOfFile: , как описано ниже, способом обеспечить полный контроль над данными изображения вашего приложения в памяти
Я использую [UIImage imageWithData:] –
установки Вы Ваш взгляд изображения в 'изображение 'to' nil', когда вы закончите с этим? И насколько велики изображения (пиксельные мудрые), которые вы загружаете? – rebello95
ах, установка изображения на ноль сделал трюк –