Интересно, может ли кто-нибудь помочь мне в отношении управления памятью в приведенном ниже коде. Я особенно заинтересован в rootController, делает это получить сохраняется, когда я initWithRootViewController или делает это вместо того, чтобы (это мое предположение) получить сохраняется с окном addSubView: Я просто интересно, что происходит ...Сохранение rootViewController?
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
Base_TableViewController *rootController = [[Base_TableViewController alloc] init];
navController = [[UINavigationController alloc] initWithRootViewController:rootController];
[window addSubview:[navController view]];
[window makeKeyAndVisible];
[rootController release];
return YES;
}
- (void)dealloc {
[navController release];
[window release];
[super dealloc];
}
EDIT:
Так что, по существу, приведенный выше код является правильным, релиз внизу отменяет выделение в верхней части, «rootController» сохраняется navController?
Большое спасибо, очень благодарен.
Гэри
Вы уверены, что окно не сохранит его? UIView сохраняет свои subviews, а UIWindow является подклассом UIView, поэтому он тоже должен быть. – Toastor
Да. Приложение addSubview просто увеличит счетчик удержания на элементе вида navController. Это не повлияет на счет сохранения на контроллере представления. – RedBlueThing
Вы правы. Как вы говорите по-английски, когда вы что-то читаете, но ваш ум помнит что-то еще? :) Я не видел, чтобы он вызывал контроллер, чтобы вернуть его представление. Виноват! – Toastor