Я разрабатываю приложение для iPhone и iPad с Xcode 4.2 и последним SDK.О выпуске созданных мной объектов
Я создал вкладки приложения без использования ARC, и я нашел это на AppDelegate
:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
UIViewController *viewController1, *viewController2;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
viewController1 = [[[FirstViewController alloc] initWithNibName:@"FirstViewController_iPhone" bundle:nil] autorelease];
viewController2 = [[[SecondViewController alloc] initWithNibName:@"SecondViewController_iPhone" bundle:nil] autorelease];
} else {
viewController1 = [[[FirstViewController alloc] initWithNibName:@"FirstViewController_iPad" bundle:nil] autorelease];
viewController2 = [[[SecondViewController alloc] initWithNibName:@"SecondViewController_iPad" bundle:nil] autorelease];
}
self.tabBarController = [[[UITabBarController alloc] init] autorelease];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
return YES;
}
Может мне нужно освободить viewController1 и viewController2?
нет, потому что отправлен сообщение 'autorelease'. –
Другие упомянули 'autorelease', которые вы отправили своим контроллерам. Еще одна вещь, о которой стоит упомянуть, заключается в том, что, хотя 'arrayWithObjects' сохраняет свой контент, он возвращается в самореализованном состоянии, поэтому сохранение tabBar будет единственным, что удерживает его от разрушения. То, как ваши контроллеры будут освобождены, выглядит следующим образом: tabBarController -> NSArray своих контроллеров -> ваши контроллеры просмотров. – dasblinkenlight