我有以下代码:
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?
谢谢!
答案 0 :(得分: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];
}
}