请原谅我,如果这已被问到,并且我没有对SO执行足够好的搜索。枚举阵列时从阵列中删除元素
我做以下,以枚举子视图数组,而从它的父删除每个子视图:
for(NSView *subview in [[self subviews] copy])
{
[subview removeFromSuperview];
}
它工作正常,但有实现这个循环,而不是一个更合适的方法只需复制数组?
请原谅我,如果这已被问到,并且我没有对SO执行足够好的搜索。枚举阵列时从阵列中删除元素
我做以下,以枚举子视图数组,而从它的父删除每个子视图:
for(NSView *subview in [[self subviews] copy])
{
[subview removeFromSuperview];
}
它工作正常,但有实现这个循环,而不是一个更合适的方法只需复制数组?
NSView
's subviews
getter直接返回它的可变数组而不复制它。所以,如果你想删除特定的子视图,其实现方式就是复制它。否则,在特定情况下,由于要删除所有子视图,你可以设置它的子视图是一个空数组:
[self setSubviews: @[] ];
谢谢。并感谢'setSubviews:'方法提示。 – wh1tney
这是一个选项[iPhone的
for (int i = self.subviews.count - 1; i >= 0; --i) {
UIView* v = self.subviews[i];
[v removeFromSuperview];
}
谢谢你的回答。我想我正在寻找一些更优雅的东西,但我认为这也是一样。 – wh1tney
可能重复 - 删除所有SubViews?](http://stackoverflow.com/questions/2156015/iphone-remove-all-subviews) – Danilo
这是我知道的最优雅的方式。 –
@Danilo我想我正在寻求解决这个问题的最佳方法。我有一个工作解决方案,我想知道更好的/更正确的方法来做到这一点。 – wh1tney