这不是一个真正的问题,我只想澄清。 我在UIButton上添加了一些子视图(每个按钮都有一个标签),我知道可能有4个或5个子视图。 所以,当我想删除一些子视图(特别是在这种情况下,第4和第5):安全删除子标签
int cnt=[[(UIView *)[self.scrollView viewWithTag:index] subviews] count];
if (cnt==4) {
[[[(UIView *)[self.scrollView viewWithTag:index] subviews] objectAtIndex:3] removeFromSuperview];
}
if (cnt==5) {
[[[(UIView *)[self.scrollView viewWithTag:index] subviews] objectAtIndex:3] removeFromSuperview];
//[[[(UIView *)[self.scrollView viewWithTag:index] subviews] objectAtIndex:4] removeFromSuperview]; <-- this crash
[[[(UIView *)[self.scrollView viewWithTag:index] subviews] objectAtIndex:3] removeFromSuperview];
}
的注释行不能被执行,当然,因为有没有更多的5,但4子视图。 所以我必须删除在相同索引上指向两次的视图。 我想知道它是否是一种安全的方法来删除它们,并且我想确保最后一个视图在阵列[[self.scrollView viewWithTag:index] subviews]
中的位置较低。
希望很清楚。 感谢
此外,如果不使用特定标签查看视图,它只会返回零,您可以调用您喜欢的任何方法。 – jrturton
感谢您的回应,我知道这一点,但儿童子视图没有标签,我只知道可能有4或5个子视图。 – Mat
通过一些假设的顺序访问您的孩子的意见听起来对我来说真的很脆弱。给它们加标签或者用其他方法来标识它们(例如,在实例变量或字典中保持对它们的引用) –