2013-02-06 69 views
0

我有以下代碼:For循環不刪除視圖?

for (NSImageView *image in self.view.subviews) { 
     if (image.frame.size.height == 67 && image.frame.size.width == 46) { 
      [image removeFromSuperview]; 
     } 
    } 

當按下一個按鈕這就是所謂的。我希望每個具有這些尺寸的NSImageView都被刪除。問題是,它只能刪除一個。我必須不斷地點擊按鈕來清除圖像。其中有4個。

但是,我注意到它生成的日誌顯示每一次最後一行被刪除。我猜是因爲這些圖像是最頂層的圖層。

所以我的問題是,我該如何做到這一點,因此每個NSImageViews高度爲67,寬度爲46的視圖一次從視圖中刪除?

謝謝!

+0

您是否在枚舉時獲取有關變異數組的錯誤消息?什麼是self.view? – rdelmar

+0

是的,我收到這條消息。該視圖是圖像所在的視圖。 – Alec

回答

4

突變數組錯誤應該會阻止您的代碼執行。改爲使用此代碼:

NSArray *copy = [self.views.subviews copy]; 

for (NSImageView *image in copy) { 
    if (image.frame.size.height == 67 && image.frame.size.width == 46) { 
     [image removeFromSuperview]; 
    } 
} 
+0

非常感謝! – Alec