llamará a removeFromSuperview dos veces causando un queuepso o efecto secundario

Tengo un elemento UIView que estoy agregando al controller de vista principal.

Debido al layout de mi código, sucede que removeFromSuperview se llama dos veces en diferentes lugares de mi código.

[myview removeFromSuperview]; 

Así es como mi código es, así que quiero saber si llamar a 'removeFromSuperview' provoca algún problema.

O bien, ¿cómo verifico si la vista está en la vista de supervisión y solo la elimino?

p.ej

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

Los documentos para removeFromSuperview dicen lo siguiente:

Si la vista de supervisión del receptor no es nula, la vista de supervisión libera al receptor. Si planea reutilizar una vista, asegúrese de retenerla antes de llamar a este método y liberarla más tarde según corresponda.

Significa que no debe producirse ningún efecto queuepso o secundario, y la implementación de este método ya realiza una comprobación sobre la que está preguntando.

Sin embargo, si necesita verificar si su vista se agrega como subvista a alguna otra vista, puede usar el siguiente código:

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

Prueba esto :

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