2013-02-11 111 views
0

之前我有在NSMuatableArray许多UIImageView,我需要删除视图中的某个UIImageView,但我想,如果我释放UIImageView它仍然是在数组中。的NSMutableArray删除对象1最后一个对象

我不想那样,但有一点问题。我需要删除的UIImageView正好是数组中最后一个对象之前的1个对象,所以我不能使用removeLastObject。我知道标签号码,但是我不能这样写,因为我会在使用它时更改数组。

for (UIImageView *k in array1) { 
    if (k.tag==tagzahl-1) { 
     if (x==1){ 
      [k removeFromSuperview]; 
      [array1 remove object:k]; 
     } 
    } 
} 

我使用:[array1 addObject:myimage];UIImageView s添加到阵列,所以我不知道指数。

+0

的问题是在遍历它就像你不能从一个NSArray REMOVEOBJECT。如果你想保持循环,那么你应该保持一个指向你想要删除的对象的指针,并在完成迭代后将其删除。尽管最好的方法是不对它们进行迭代,并立即引用它。 Paul.s&trojanfoe回答以两种不同的方式完成: – 2013-02-11 15:18:18

回答

0

如果您知道哪个标签你说你做那么

UIView *view = [viewContainingImageView viewWithTag:tagzahl-1]; 
[view removeFromSuperview]; 
[array1 removeObject:view]; 
+0

没有任何功能叫做viewContainingImageView viewWithTag: – killerwakka 2013-02-11 15:30:09

+1

大声笑出来。 – trojanfoe 2013-02-11 15:31:29

+0

不应该将它替换为实际包含图像视图的视图的指针。 – 2013-02-11 15:32:51

0
if ([array1 count] >= 2) 
{ 
    NSUInteger index = [array1 count] - 2; 
    UIImageView *view = [array1 objectAtIndex:index]; 
    [array1 removeObjectAtIndex:index]; 
    [view removeFromSuperview]; 
}