Я использую класс LeavesView, доступный на GitHub от Tom Brow.NSArray просачивается с большим количеством изображений
На iPad у меня 23 изображения на 1024x768 в диапазоне от 200-500 КБ (JPG). Я сжал изображения столько, сколько мог, не теряя качества. По какой-то причине, когда я начинаю со списком изображений, память значительно падает и, в конечном счете, падает. Вот код:
- (id)init {
if (self = [super init]) {
images = [[[NSArray alloc] initWithObjects:
[UIImage imageNamed:@"001.jpg"],
[UIImage imageNamed:@"002.jpg"],
[UIImage imageNamed:@"003.jpg"],
[UIImage imageNamed:@"004.jpg"],
[UIImage imageNamed:@"005.jpg"],
[UIImage imageNamed:@"006.jpg"],
[UIImage imageNamed:@"007.jpg"],
[UIImage imageNamed:@"008.jpg"],
[UIImage imageNamed:@"009.jpg"],
[UIImage imageNamed:@"010.jpg"],
[UIImage imageNamed:@"011.jpg"],
[UIImage imageNamed:@"012.jpg"],
[UIImage imageNamed:@"013.jpg"],
[UIImage imageNamed:@"014.jpg"],
[UIImage imageNamed:@"015.jpg"],
[UIImage imageNamed:@"016.jpg"],
[UIImage imageNamed:@"017.jpg"],
[UIImage imageNamed:@"018.jpg"],
[UIImage imageNamed:@"019.jpg"],
[UIImage imageNamed:@"020.jpg"],
[UIImage imageNamed:@"021.jpg"],
[UIImage imageNamed:@"022.jpg"],
[UIImage imageNamed:@"cover.jpg"],
nil] autorelease];
}
return self;
}
Теперь, в этом фрагменте кода, я использовал autorelease. Я также попытался:
-(void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
NSLog(@"memory warning");
LeavesCache *lv =[LeavesCache alloc];
[lv flush];
[lv release];
//[images release];
}
и, конечно, в этом примере, я просто использовать изображения, а не другие объекты, которые я использую в представлении:
-(void)viewDidUnload {
[super viewDidUnload];
images = nil;
}
-(void)dealloc {
[images release];
[super dealloc];
}
Когда я использую autorelease для массива изображений, [освобождение изображений]; закомментирован, и наоборот, если я не использую autorelease, я использую release в dealloc.
Теперь, когда я появляюсь, память восстанавливается, как ожидалось. Это просто, что изображения, кажется, HOG, когда они используются, и я не знаю другого пути, не используя массив изображений.
Любая помощь была бы оценена.