2012-01-23 12 views
0

を解放するにはだから私は、私は、デリゲートを通じてそれは、ビューの提示午前のUIViewControllerを持って、コードは次のとおりです。のUIViewControllerのビューを解雇し、メモリ

フルサイズは、ここで私が提示していますのUIViewControllerである
[self.delegate fullStrViewController: self addFullScreenSubview:fullSize]; 

。 fullSizeの中には、基本的にスーパービューからのビューを削除するディミスメソッドがあります。問題は、私が実際にfullSizeでreleaseを呼び出しているところです。上のデリゲートの呼び出しの後に、私がそれを行った場合、UIViewControllerが解放されたので、私はdismissを呼び出すとエラーを引き起こします。何かご意見は?

答えて

0

UIViewのサブクラスは常にサブビューを保持します。したがって、UIViewsubviewを追加してUIViewに追加した後にreleaseに電話をかけることは安全です。ただし、deallocが送信されると、親はreleaseを子に呼び出すので、親の寿命の間だけ子を保持したいと仮定します。

0

UIViewサブクラスは、ビュー階層にビューを挿入するとビューを保持します。 ビューが階層から削除されたときに解放することで、その保持のバランスをとることができます。

その時点で他のオブジェクトへの参照がない場合、そのオブジェクトは解放されます。

ARCの使用を開始しても、これらのことを心配する必要はありません。

関連する問題