2013-02-11 79 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]; 
} 
相關問題