Xcode 4.2および最新のSDKを使用してiPhoneおよびiPadアプリケーションを開発しています。私が作成したオブジェクトを解放することについて
私は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」メッセージが送信されるためです。 –
他の人は、あなたのView Controllerに送った 'autorelease'について言及しています。言及する価値のある別のものは、 'arrayWithObjects'はその内容を保持しますが、それはautoreleased状態で返されるため、' tabBar'のretainは破壊から守る唯一のものです。あなたのビューコントローラがリリースされる方法は、次のとおりです:tabBarController - >そのコントローラのNSArray - >ビューコントローラ。 – dasblinkenlight