Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。925件0下記のように階層化されたViewがあるとします。UIView全てのUIViewで、自分の子要素を削除するためにdeinit内に下記の記述をしています。}}MainViewControllerからC_UIViewを削除する時の記述は下記の通りです。nilすると、階層の深さに関係なくUIViewの中にあるanimateWithDurationについて、completionでEXC_BAD_ACCESSが発生してしまいます。})completionを削除すると問題なく動き、またどのアニメーションだから特別に発生するということはなく、おそらく参照や多重解放などが原因かとは思うのですが、親がremoveされた時に子供も全てremoveするにはどのような方法がベストなのでしょうか。8:41画面切り替えの機能で、見ていない間のViewでも色々なアニメーションやNotification、http通信が動いているので、閉じた画面のものはUIViewごと削除しようかと思った次第です。再度開いたときに再作成する流れです。9:13はい、最初はそう思いnilを代入するだけにしていたのですが、そうするとdeinitが呼ばれませんでした。明示的にremoveすることでdeinitが動作し、通知やタイマーを削除することができました。お恥ずかしながら今回が初めてのios開発でメモリ関係など本当に手探りで、nilで不十分なのは私の組み方がまずく強参照が残っている可能性もありますよね。見直す時間もなく、removeで解決できるならそれで、と思っていました。いう関数があり、superviewが変更されたときに内容が実行されます。親がremoveされ、子がsuperviewを失った際も呼ばれます。内に移し、親のremoveのみで目的が達成できるか検討してみてはどうでしょうか。結果次第で、この質問の前提が崩れると思います。票1かなり時間が経っていますが、原因が確実になりましたので自己レスいたします。self]に変更し、selfのものが参照されたときにnilであれば参照しないようにしてやることで、落ちることがなくなりました。ありがとうございました。false}これのselfは、UIViewControllerのサブクラスではなくて、UIViewのサブクラスですか?だったら、スレッドの無駄づかいを避ける意味でも、UIViewのアニメーションは、UIViewControllerのサブクラスに記述したほうがいいと思います。(以下は、役に立たない情報として、削除しようと思いましたが、まあ、役に立たないという事実もまた、だれかの役に立つかもしれないと思い、残すことにしました。in」構文で、subviewsの全削除はできるらしいです。)後に、ご質問の内容全体について検証するつもりですが、ぱっと見、これはまずいだろうと思った箇所があったので、そこだけ回答したいと思います。subview.removeFromSuperview()}ループを回しているあいだ、subviewsは、内容が変化し続けます。いうループは予測のできない不具合が起きる危険があります。配列の要素を全削除というプログラムは、最後尾の要素から削除していくのが、定番です。