私はAppleのサイトでこれを検索しましたが、どちらも使用していないストーリーボードまたはナビゲーションコントローラーを使用したドキュメントしか見つからないようです。これは、メモリ管理についての非常に簡単な質問です。
完全に空白のアプリケーションを作成しました。AppDelegateのdidFinishLaunchingWithOptions関数で、作成したViewControllerのインスタンスを作成しています。私の設計(それ自体が問題になる可能性があります)は、View ControllerとViewsの間に1:1の関係を持たせることです。
したがって、すべての起動パッドである私のアプリケーションのメインメニューはMenuViewController.h/mにあります。
.hで:
MenuViewController *m;
.mで:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
m = (MenuViewController *)[[MenuViewController alloc] init];
m.window = self.window;
[m doStuff]; // handful of functions, not actually called this
//[m release]; // doesn't make sense to me
return YES;
}
これは私が混乱しているところです。これは、基本的にアプリケーションのライフサイクル全体にわたって存在する必要があります。しかし、私はまた、(現在の関数の範囲内で)割り当てたものをすべて解放する必要があるという印象を受けています。それを超えて必要な場合は、最初に他の場所に保持する必要があります。これは本当ではありませんか?
私の基本的な質問は...このViewControllerをどこでリリースする必要があるかです。私が言ったことで、他に何かがうまくいかないように思われることはありますか?