ARCによるメモリ解放のタイミングについて
ARC は、メモリ管理でこれまで手動で行っていた、
Retain
Release
Autorelease
を自動でコンパイラで行うようにさせる方式です。一定のルールに従う必要がありますが、メモリ管理に関する、Retain、Releaseを書かなくてよくなります。
というところまでは一応なんとなくですがわかりました。
しかし、色々と調べてみるとARCにすると
・retainとかreleaseができないので、開放タイミングが確証できない。
と、こちらのサイト→http://nex.xrea.jp/?s=1796
に書かれていました。
例えばARCを使わない場合だと、Aという画面からBと言う画面に画面遷移するとき、
View03Controller *vBc = [[View03Controlleralloc] init];
UINavigationController *navCon;
navCon = [[UINavigationControlleralloc] initWithRootViewController:vBc];
navCon.navigationBarHidden = YES;
[selfpresentModalViewController:navCon animated:YES];
[vBc release];
このように最後にリリースをして解放していましたが、ARCでは [v3c release];この部分がいりません。
となるとこのViewのメモリはどこでリリースされるのだろう?と思ったのです。
アプリが完全に終了したとき?画面遷移が終わったとき?
ARCをつかうと自分が解放したい場所でメモリの解放ができないようなのですが、メモリの解放はいつ、どのタイミングでされるのでしょうか?
ARC以前のように自分で「ここでリリース!」というのはやはりできないのでしょうか?
iPhone 4, iOS 5.1.1