2012-04-05 16 views
3

プログラミング中に不思議に思っていました。私はchildViewControllerのインスタンスを作成するrootViewControllerを持っています。このchildVCは別のchildViewController(例えばchildVC2)から[self.navigationController pushViewController:childVC]を介して私のrootViewControllerにプッシュされます。今私はchildVC2の私のインスタンスで何が起こるのだろうかと思っていました。それは解放されますか?なぜなら、childVCからchildVC2に戻るとき、私はchildVC2の新しいインスタンスを作成し、それを私のrootViewControllerにプッシュするからです。明らかに、私はchildVC2の以前のインスタンスを使用していないので、それをどうやってやったらどうしたら手動で解放できますか?viewControllerが別のviewControllerにプッシュされた後にどうなるのですか?

答えて

1

はい、ViewControllerを解放する必要がある場合、プッシュは参照カウントを1増加させるため、参照カウントをデクリメントするためにポップする必要があります。インスタンスは、.hの中でそれを定義し、作成するとき、それは別のopitionは、それが自動解放し、この場合には、あなたが

yourViewController = [yourViewControllerClass alloc] init]autorelease]; 
+0

感謝のViewControllerを解放する責任はありませんようにすることです。この

if(yourViewController) [yourViewContoller release]; yourViewController = [yourViewControllerClass alloc] init]; 

のようにそれを行います!しかし、私がARCを使用すると、私のプログラムは自動的にそれを自動的に行いますか? – iJatrat

+0

はい、ARCを使用している場合、オブジェクトを解放する心配はありません.iOSがそれに注意します。 –

関連する問題