Изменение значения массива nsmutable без утечки памяти - PullRequest
0 голосов
/ 13 января 2012

У меня есть NSMutableArray, который содержит UIImageView объектов, которые добавляются в прокрутки.

[self.scrollView addSubview:UIImageView];
[self.array addObject:UIImageView];

Я хочу удалить эти объекты и добавить новые после нажатия на кнопку. Я попытался сделать это, вызвав removeAllObjects: для массива, но это вызывает сбой.

for(int i=0;i<[self.array count];i++){
    [[self.array objectAtIndex:i] removeFromSuperview];
}
[self.array removeAllObjects];

1 Ответ

0 голосов
/ 13 января 2012

Привет, пожалуйста, сделайте как следующий код -

UIScrollView *scrollView=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 300, 400)];
[self.view addSubview:scrollView];

array=[[NSMutableArray alloc]init];

UIImageView *img1=[[UIImageView alloc]initWithFrame:CGRectMake(20, 0, 100, 100)];
UIImageView *img2=[[UIImageView alloc]initWithFrame:CGRectMake(20, 100, 100, 100)];
UIImageView *img3=[[UIImageView alloc]initWithFrame:CGRectMake(20, 200, 100, 100)];

[img1 setImage:[UIImage imageNamed:@"images.png"]];
[img2 setImage:[UIImage imageNamed:@"images.png"]];
[img3 setImage:[UIImage imageNamed:@"images.png"]];

[array addObject:img1];
[array addObject:img2];
[array addObject:img3];

for(int i=0;i<[array count];i++)    
    [scrollView addSubview:[array objectAtIndex:i]];

, затем для Удалить все представления и пустой массив. Следующий код для buttonTouchUpInside () -

 for(int i=0;i<[array count];i++){    
    [[array objectAtIndex:i] removeFromSuperview];    
    [array removeObjectAtIndex:i];
}
...