В течение бесконечных часов искали решение этой проблемы. Проблема действительно проста. У меня есть UIImageView
в перо, я загружаю изображение из Интернета и устанавливает UIIImageView
с изображением. Я выпускаю viewController. Dealloc фактически вызывается (!) И снова загружает viewController и изображение. Это можно сделать, просто войдя в фоновый режим. Утечки прибора не сообщают о каких-либо утечках, но при распределении показывают, что изображение сохраняется в памяти и продолжает расти.
Базовый пример:
-(id)init {
if((self = [super init])) {
id path = [NSString stringWithFormat:@"http://www.aSite.com/largeImage.jpg"];
NSData* urlData = [[NSData alloc] initWithContentsOfURL:url];
UIImage* img = [[UIImage alloc] initWithData:urlData];
[background setImage:img];
[urlData release];
[img release];
}
return self;
}
-(void)dealloc {
[background release];
[super dealloc];
}
Некоторые люди говорят, что UIImageView на самом деле протекает, или на самом деле CGImage. Некоторые люди говорят, что инструмент не отображается правильно. Я получаю предупреждение о памяти после 10-15 раз, когда я делаю это с 2,5 Мб большого изображения. Результаты от реального устройства и последней iOS (или по крайней мере 4-5 недель назад). Поскольку UIImageView используется очень многими людьми, я подумал, что будет легко найти проблему или получить решение от Apple?
Источник CGImage Leak:
(iphone) UIImageView setImage: утечки?
РЕДАКТИРОВАТЬ: Я был abit tierd, когда я написал пример. Пример правильный сейчас. Я также попробовал с авто-выпущенным объектом, и та же самая "утечка" все еще там. Пожалуйста, ответьте на вопрос , если вы собираетесь написать ответ.