通过调用removeFromSuperview自行解除分配?

时间:2016-05-08 12:11:18

标签: objective-c uiview superview

在自定义UIView中调用removeFromSuperview作为[self removeFromSuperview]正确地从超级视图中删除自己,就像在超级视图中执行[self.customView removeFromSuperview]一样?

我已经检查过,它确实做了同样的事情,但我还是想确定一下!

1 个答案:

答案 0 :(得分:2)

不确定。 UIView实例如何收到removeFromSuperview消息是无关紧要的 - 无论是从外部调用还是在实例内调用它都会完全相同。

只要没有其他强引用,视图也会在从superview中删除后以完全相同的方式释放。如果需要,可以通过在视图的子类中实现dealloc方法,并为其添加NSLog或断点来自行测试。

您可以致电removeFromSuperview时唯一值得注意的例外情况是从不在视图的drawRect:方法as stated in the documentation内调用 。这样做会导致未定义的行为。