将调用removeFromSuperview两次导致崩溃或副作用

我有一个UIView元素,我添加到主视图控制器。

由于我的代码的devise,所以碰巧removeFromSuperview在我的代码的不同位置被调用两次。

[myview removeFromSuperview]; 

这就是我的代码,所以我想知道如果调用“removeFromSuperview”会导致任何问题。

或者如何检查视图是否在超视图中,只有删除它。

例如

 if (myview in superview) [myview removeFromSuperview]; else do nothing 

removeFromSuperview的文档告诉以下内容:

如果接收者的超级视图不为零,则超级视图释放接收者。 如果您打算重新使用视图,请确保在调用此方法之前保留该视图,并在适当的时候再次释放该视图。

这意味着不应该发生崩溃或副作用,并且您询问的检查已经通过执行此方法执行。

但是,如果您需要检查视图是否作为子视图添加到某个其他视图,则可以使用以下代码:

 if( theView.superview != nil ) { // theView is a subview for some view } 

尝试这个 :

 if (myView.view.superview != nil) { [myView removeFromSuperview]; } else { //do something }