0

我有以下代码:

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

这在按下按钮时调用。我希望删除每个具有这些尺寸的 NSImageView。问题是,它只删除了一个。我必须一遍又一遍地点击按钮来清除图像。其中有 4 个。

但是,我注意到它生成的日志每次都显示最后一行被删除。我猜是因为这些图像是最顶层的。

所以我的问题是,我怎样才能让每个高度为 67、宽度为 46 的 NSImageViews 立即从视图中删除?

谢谢!

4

1 回答 1

4

The mutating array error should prevent your code from executing. Use this instead:

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

for (NSImageView *image in copy) {
    if (image.frame.size.height == 67 && image.frame.size.width == 46) {
        [image removeFromSuperview];
    }
}
于 2013-02-06T02:15:18.737 回答