通过对自身调用 removeFromSuperview 进行自我释放?

Self-deallocating by calling removeFromSuperview on itself?

在自定义 UIView 中调用 removeFromSuperview 作为 [self removeFromSuperview] 是否会像在其超级视图中执行 [self.customView removeFromSuperview] 一样正确地将其自身从其超级视图中删除?

我已经检查过了,它看起来确实是一样的,但我还是想确定一下!

当然可以。 UIView 实例如何接收 removeFromSuperview 消息是无关紧要的——无论它是从实例外部还是在实例内部调用的,它都会做同样的事情。

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

当您可以调用 removeFromSuperview 时唯一值得注意的例外是您应该 永远不要 从视图的 drawRect: 方法中调用它,as stated in the documentation.这样做会导致未定义的行为。