Я искал это на сайте Apple и могу только найти документацию с помощью раскадровки или навигационных контроллеров, ни один из которых я использую. Это невероятно простой вопрос об управлении памятью.Освобождение Main View Controller (iOS)
Я создал совершенно пустое приложение. В моей функции appFinishLaunchingWithOptions в AppDelegate я создаю экземпляр контроллера View, который я создал. Мой дизайн (который сам по себе может быть проблемой) заключается в том, чтобы иметь связь 1: 1 между View Controllers и Views.
Таким образом, главное меню моего приложения, которое является стартовой площадкой для всего, находится в 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;
}
Это где я запутался. Я хочу, чтобы это существовало в основном для всего жизненного цикла приложения. Но у меня также создается впечатление, что вы должны (в рамках текущей функции) выпускать все, что вы выделяете. Если вам это нужно, вы должны сохранить его в другом месте. Разве это не так?
Мой основной вопрос: где я должен выпускать этот контроллер просмотра? Есть ли что-то еще, что я сказал, что кажется из-за удара?
Почему вы не использовали автоматический подсчет ссылок? (Возможно, вы могли бы выпустить его в 'applicationWillTerminate: application' из AppDelegate) – Chris
Вы отпустите его, прежде чем переходить к следующему виду. Вы также можете сделать это в методе viewDidUnload или dealloc – anuragbh